Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- tomcat
- Eclipse
- table
- NPM
- Python
- 보조정렬
- IntelliJ
- SQL
- mybatis
- Java
- Spring
- Kotlin
- plugin
- Android
- 공정능력
- R
- react
- SPC
- vaadin
- window
- Sqoop
- MSSQL
- xPlatform
- SSL
- mapreduce
- JavaScript
- Express
- GIT
- es6
- hadoop
Archives
- Today
- Total
DBILITY
WIN32 윈도우 생성 및 메시지처리 이해 본문
반응형
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