단추, 체크 상자, 텍스트 상자 등도 다 실제 '창'이더라 기본적으로 제목 표시줄이 없을 뿐...


그래서 스타일을 바꿔주면 제목 표시줄이 있는 버튼도 만들 수 있고 메인 프로그램 창 안에 작은 창(MDI랑은 다른 용도로...)도 만들 수 있어




24b0d121e09c28a8699fe8b115ef046ecf48c2f2




ATOM SetupWindowClass(hInstance, className, icon, background)
HINSTANCE hInstance;
LPCSTR className;
INT icon, background;
{
WNDCLASSEX wc = { 0 };
wc.cbSize = sizeof(WNDCLASSEX);
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = className;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) (background + 1);
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(icon));
wc.hIconSm = wc.hIcon;
return Regis terClassEx(&wc);
}
WINAPI WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)
HINSTANCE hInstance, hPrevInstance;
LPSTR lpCmdLine;
{

MSG msg;
HWND hWnd, hButtonClose;

SetupWindowClass(hInstance, TEXT("GecWindowClass"), IDI_GEC, COLOR_BTNFACE);
hWnd = CreateWindowEx(0, TEXT("GecWindowClass"), TEXT("큰 창"), WS_BORDER | WS_CAPTION | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_OVERLAPPED | WS_THICKFRAME | WS_SYSMENU | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL);

SetupWindowClass(hInstance, TEXT("SmallWindowClass"), IDI_GEC, COLOR_GRADIENTINACTIVECAPTION);
CreateWindowEx(0, TEXT("SmallWindowClass"), TEXT("꼬마창 1"), WS_BORDER | WS_CAPTION | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_OVERLAPPED | WS_THICKFRAME | WS_SYSMENU | WS_VISIBLE | WS_CHILD, 20, 20, 320, 240, hWnd, NULL, hInstance, NULL);
CreateWindowEx(0, TEXT("SmallWindowClass"), TEXT("꼬마창 2"), WS_BORDER | WS_CAPTION | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_OVERLAPPED | WS_THICKFRAME | WS_SYSMENU | WS_VISIBLE | WS_CHILD, 400, 40, 320, 240, hWnd, NULL, hInstance, NULL);
CreateWindowEx(0, TEXT("SmallWindowClass"), TEXT("꼬마창 3"), WS_BORDER | WS_CAPTION | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_OVERLAPPED | WS_THICKFRAME | WS_SYSMENU | WS_VISIBLE | WS_CHILD, 280, 300, 320, 240, hWnd, NULL, hInstance, NULL);

hButtonClose = CreateWindowEx(0, TEXT("BUTTON"), TEXT("단추"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | WS_OVERLAPPEDWINDOW, 650, 500, 80, 24, hWnd, (HMENU) ID_MESSAGER, hInstance, NULL);
SendMessage(hButtonClose, WM_SETFONT, (WPARAM) GetDefaultFont(), TRUE);

while(GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}