#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;}