Files
Work/mdiwin/WINDOW.CPP
2024-08-07 09:16:27 -04:00

41 lines
823 B
C++

#include <mdiwin/window.hpp>
Window::Window()
: mhWnd(0)
{
}
Window::~Window()
{
if(GetHandle())::DestroyWindow(GetHandle());
}
LONG FAR PASCAL Window::WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
Window *pWindow=Window::GetPointer(hWnd);
if(pWindow)
{
long retCode=pWindow->WndProc(message,wParam,lParam);
if(WM_NCDESTROY==message)
{
Window::SetPointer(hWnd,0);
pWindow->SetHandle(0);
}
return retCode;
}
if(message==WM_NCCREATE)
{
::DefWindowProc(hWnd,message,wParam,lParam);
LPCREATESTRUCT lpcs=(LPCREATESTRUCT)lParam;
pWindow=(Window *)lpcs->lpCreateParams;
if(!pWindow)return FALSE;
Window::SetPointer(hWnd,pWindow);
pWindow->SetHandle(hWnd);
return pWindow->WndProc(message,wParam,lParam);
}
return ::DefWindowProc(hWnd,message,wParam,lParam);
}