DBILITY

WIN32 윈도우 생성 및 메시지처리 이해 본문

C

WIN32 윈도우 생성 및 메시지처리 이해

DBILITY 2019. 1. 4. 11:21
반응형

API를 통해 직접 작성해 보았다.

다시드는 생각이지만, MessageBox의 MB_OK가 정말 싫다.

 

#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
	if (uMsg == WM_DESTROY) {
    	PostQuitMessage(0); 	
	} 	else if (uMsg == WM_LBUTTONDOWN) {
    	MessageBox(hWnd, "Mouse Left Button Click", "Information", MB_OK);
    }
    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
	HWND h_wnd;
    MSG msg;
    char app_class_name[] = {"dbility"};
    WNDCLASS wc;
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;	// 윈도우 배경색 설정
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);	// 기본 커서 설정
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);	// 프로그램 아이콘 설정
    wc.hInstance = hInstance;					// 인스턴스
    wc.lpfnWndProc = WndProc;					// 처리 프로시져
    wc.lpszClassName = app_class_name;			// 프로그램명칭
    wc.cbClsExtra = NULL;						// MDI 	wc.cbWndExtra = NULL;
    wc.lpszMenuName = NULL; 	wc.style = NULL;
    RegisterClass(&wc);
    h_wnd = CreateWindow(app_class_name, "윈32", WS_OVERLAPPEDWINDOW, 100, 100, 800, 600, NULL, NULL, hInstance, NULL);
    ShowWindow(h_wnd, nCmdShow);
    UpdateWindow(h_wnd);			// 화면 갱신
    while (GetMessage(&msg,NULL,0,0)) {
    	TranslateMessage(&msg);
        DispatchMessage(&msg);
	}
    return msg.wParam;
}

 

반응형

'C' 카테고리의 다른 글

C 초기화의 중요성?  (0) 2019.06.14
C console program example  (0) 2019.06.05
GetKeyState  (0) 2019.01.04
CMainFrame 가운데 정렬  (0) 2019.01.02
주요 Message  (0) 2018.02.13
Comments