41 lines
925 B
C++
41 lines
925 B
C++
#include <mdiwin/mdiwin.hpp>
|
|
|
|
MDIWindow::MDIWindow()
|
|
: mhWnd(0)
|
|
{
|
|
}
|
|
|
|
MDIWindow::~MDIWindow()
|
|
{
|
|
if(GetHandle())::DestroyWindow(GetHandle());
|
|
}
|
|
|
|
long FAR PASCAL _export MDIWindow::MDIWndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
|
|
{
|
|
MDIWindow *pWindow=MDIWindow::GetPointer(hWnd);
|
|
|
|
if(pWindow)
|
|
{
|
|
long retCode=pWindow->WndProc(message,wParam,lParam);
|
|
if(WM_NCDESTROY==message)
|
|
{
|
|
MDIWindow::SetPointer(hWnd,0);
|
|
pWindow->SetHandle(0);
|
|
}
|
|
return retCode;
|
|
}
|
|
if(message==WM_NCCREATE)
|
|
{
|
|
::DefMDIChildProc(hWnd,message,wParam,lParam);
|
|
LPCREATESTRUCT lpcs=(LPCREATESTRUCT)lParam;
|
|
LPMDICREATESTRUCT lpcm=(LPMDICREATESTRUCT)lpcs->lpCreateParams;
|
|
pWindow=(MDIWindow *)lpcm->lParam;
|
|
if(!pWindow)return FALSE;
|
|
MDIWindow::SetPointer(hWnd,pWindow);
|
|
pWindow->SetHandle(hWnd);
|
|
return pWindow->WndProc(message,wParam,lParam);
|
|
}
|
|
else return ::DefMDIChildProc(hWnd,message,wParam,lParam);
|
|
}
|
|
|