Windows使用资源对话框创建一个窗口

59 阅读1分钟

打开资源视图

image.png

添加资源

右键资源文件,添加资源

image.png

创建成功以后,会生成两个文件,资源文件和头文件

image.png

添加一个对话框资源

image.png

image.png

image.png

修改对话框属性

在属性栏目中,我们可以修改对话框的一些属性

image.png

修改代码使用我们创建的对话框

往对话框中拖动两个按钮

image.png

代码

#include <Windows.h>

// 资源头文件
#include "resource.h"

// 创建窗口过程处理函数
INT_PTR CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    BOOL bRet = TRUE;

    // 处理消息
    switch (uMsg)
    {

    case WM_LBUTTONDOWN:
        // 鼠标左键单击
        MessageBox(hDlg, L"hello 内容", L"标题", MB_OK);

    case WM_COMMAND:
        // 对话框中的按钮会产生command消息

        switch (LOWORD(wParam))   // wParam的低位字是按钮的ID
        {
        case IDC_BUTTON1:
            // 点击了Button1
            MessageBox(hDlg, L"hello Button1", L"button1 标题", MB_OK);

            break;

        case IDC_BUTTON2:
            // 点击了Button2
            MessageBox(hDlg, L"hello Button2", L"button2 标题", MB_OK);

            break;
        default:
            // 默认的让Windows处理
            bRet = FALSE;
            break;
        }

        break;

    case WM_CLOSE:
        EndDialog(hDlg, 0);  // 关闭对话框
        break;

    default:
        // 默认的消息让Windows处理
        bRet = FALSE;
        break;
    }

    return bRet;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

    // 使用对话框资源创建一个Dialog, 其中IDD_DIALOG1为对话框ID
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, MainDlgProc);
}

int main() {
    return WinMain(GetModuleHandle(NULL), NULL, GetCommandLineA(), SW_SHOW);
}

运行效果

点击鼠标左键

image.png

点击Button1

image.png

点击Button2

image.png