gpt4 book ai didi

c++ - 如何在 Win32 API 的对话框中显示自定义消息?

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:42 24 4
gpt4 key购买 nike

如何在 Win32 API 中使用对话框显示自定义消息,而不是在默认的 MessageBox 函数中显示它们?

我做了一个函数如下:

void DialogBox_Custom (HWND hWndParent, LPSTR contentToShow)
{
HWND hDialog = CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG1), hWndParent, DialogProc);
if (!IsWindowVisible(hDialog))
{
ShowWindow(hDialog, SW_SHOW);
}
SetDlgItemText(hDialog, IDC_EDIT1, contentToShow);
}

但是当我调用这个函数时,对话框每秒出现数百万次并且永远不会结束,直到我强行关闭程序。

请好心人帮我做一个自定义对话框,我可以在对话框中显示从父窗口发送到 EDIT 控制窗口的一些内容。

最佳答案

使用 DialogBoxParam函数创建模态(暂停执行直到窗口关闭)对话框。

DialogBoxParam(instance, MAKEINTRESOURCE(IDD_YOURDIALOG), hWndParent, YourWndProc, (LPARAM)contentToShow);

然后您必须创建一个函数 YourWndProc 来处理要绘制的消息并提供关闭窗口的机制,以允许在 DialogBox() 调用后继续执行。

INT_PTR CALLBACK YourWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
SetDlgItemText(hDlg, IDC_EDIT1, (LPSTR)lParam);
return (INT_PTR)TRUE;
case WM_CLOSE:
EndDialog(hDlg, LOWORD(wParam));
break;
}
return DefWindowProc(hDlg, message, wParam, lParam);
}

关于c++ - 如何在 Win32 API 的对话框中显示自定义消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18847026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com