41 lines
823 B
C++
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);
|
|
}
|
|
|
|
|