티스토리 뷰
- API에서 Dialog기반 프로그래밍은 아래와 코드와 같이 WinMain()에서 DIalogBox() 호출하고 WndProc() 대신 DIalogProc() 등록해서 메시지 처리해주면 된다.
- 메시지 루프 구현 없이도 메시지 처리가 된다.
IDD_DIALOG : 화면에 보여줄 Dialog ID
HWND_DESKTOP : 부모윈도우핸들
DialogProc : Dialog 메시지 처리함수명
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 |
BOOL CALLBACK DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstane, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{
DialogBox(hInstane, MAKEINTRESOURCE(IDD_DIALOG), HWND_DESKTOP, DialogProc);
}
BOOL CALLBACK DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
EndDialog(hDlg, TRUE);
break;
}
break;
default:
break;
}
return FALSE;
} |
cs |