在C++中,DialogBox函数是Windows API的一部分,它用于在Win32应用程序中创建并显示一个模态对话框。DialogBox函数是USER32.DLL中的一个导出函数,因此你需要在你的C++ Win32应用程序中链接到这个库。

#include "framework.h"
#include "resource.h"

INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam);

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    DialogBox(NULL, MAKEINTRESOURCE(ID_MAIN), NULL, &DialogProc);
    return 0;
}

INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_INITDIALOG:
        MessageBoxW(NULL, L"首次加载", L"标题", 0);
        break;
    case WM_CLOSE:
        MessageBoxW(NULL, L"关闭对话框", L"标题", 0);
        EndDialog(hwndDlg, NULL);
        break;

    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDOK:
            MessageBoxW(NULL, L"确认按钮", L"标题", 0);
            break;

        case IDCANCEL:
            MessageBoxW(NULL, L"取消按钮", L"标题", 0);
            DestroyWindow(hwndDlg);
            return TRUE;
        }
    }
    return FALSE;
}

1

在这个例子中,DialogProc是一个回调函数,它处理对话框接收到的消息。DialogBox函数会调用这个函数来处理对话框的初始化、按钮点击等事件。

你需要使用资源编辑器(如Visual Studio的资源视图)来创建对话框模板(.rc文件),并在其中定义控件(如按钮、文本框等)。对话框模板的ID(在这个例子中是ID_MAIN)需要在你的代码中引用。

C++标准库本身并不包含DialogBox函数或任何与GUI相关的功能。这些功能都是特定于Windows API的,并且通常需要使用特定的工具(如Visual Studio)和Windows特定的编程技术来开发。

相关链接

https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-dialogboxa

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部