1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
static vector <HWND> _MyTypeWindowList;
static LRESULT CALLBACK WindowProc(HWND hwnd, UINT wm, WPARAM wParam, LPARAM lParam)
{
switch(wm)
{
case WM_CLOSE:
{
DestroyWindow(hwnd);
}
case WM_DESTROY:
{
int i = 0;
while(i < _MyTypeWindowList.size())
{
if(hwnd == _MyTypeWindowList[i])
{
break;
}
i++;
}
_MyTypeWindowList.erase(_MyTypeWindowList.begin()+i);
if(GetMyTypeWindowListSize() == 0)
{
PostQuitMessage(0);
}
return 0;
}
default:
break;
}
return DefWindowProc(hwnd, wm, wParam, lParam);
}
void SetHWnd(HINSTANCE hInstance)
{
_hWnd = CreateWindowEx(
NULL,
GetSzClassName(),
GetSzWindowName(),
WS_OVERLAPPEDWINDOW,
0,0,
500,500,
NULL,
NULL,
hInstance,
NULL);
AppendMyTypeWindowListItem(_hWnd);
}
void AppendMyTypeWindowListItem(HWND hWnd)
{
_MyTypeWindowList.push_back(hWnd);
}
|