在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;
}
在这个例子中,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
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 基于Windows API DialogBox的对话框
发表评论 取消回复