#include <Windows.h>
#include "resource.h"
// 窗口是通过代码实现的,不是资源
// 对话框是作为资源存在的,可以直接使用
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
// 对话框的关闭事件和窗口一致,但是内部的处理不同
case WM_CLOSE:
{
EndDialog(hDlg, 0);
break;
}
// 所有没有处理的消息,都返回FALSE
default:
{
return FALSE;
}
}
// 对于对话框的回调函数,如果消息需要让系统继续处理,就返回 FALSE,否则返回 TRUE
return TRUE;
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCmdShow)
{
// 以[模态]对话框的方式使用对话框资源,模态对话框有以下特点:
// 1. 由于内建消息循环,所以 DialogBox 是阻塞的函数
// 2. 一旦创建了模态对话框,那么父类的消息会被忽略
// 3. 函数的内部自己调用了 ShowWindow, 不需要手动编写
// 4. 必须使用 EndDialog 关闭模态对话框
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc);
return 0;
}