#include <windows.h>
class aaa
{
public:
aaa()
{
MSG msg ;
WNDCLASSEX wc = {0};
wc.cbSize = sizeof(WNDCLASSEX);
wc.lpfnWndProc = aaa::DialogP;
wc.hInstance = GetModuleHandle(NULL);
wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
wc.lpszClassName = "DialogClass";
RegisterClassEx(&wc);
CreateWindowEx(WS_EX_DLGMODALFRAME | WS_EX_TOPMOST, "DialogClass",
"Dialog Box", WS_VISIBLE | WS_SYSMENU | WS_CAPTION ,
100, 100, 200, 150, NULL, NULL, GetModuleHandle(NULL), NULL);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
static LRESULT CALLBACK DialogP( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
aaa *bb = (aaa*)GetWindowLong(hwnd, GWL_USERDATA);
return bb->DialogProc(hwnd, msg, wParam, lParam);
}
LRESULT CALLBACK DialogProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch(msg)
{
case WM_CREATE:
{
bhwnd = CreateWindow("BUTTON", "AAA",
WS_VISIBLE | WS_CHILD ,
50, 50, 80, 25,
hwnd, (HMENU) 1, NULL, NULL);
SetWindowText(bhwnd, "DDD");
}
break;
case WM_COMMAND:
DestroyWindow(hwnd);
PostQuitMessage(0);
break;
case WM_CLOSE:
DestroyWindow(hwnd);
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
private:
HWND bhwnd;
};
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
aaa *nn = new aaa();
delete nn;
return 0;
}