WinAPI单击第一个对话框上的按钮控件并销毁第一个对话框后,创建第二个对话框

黑影AF

我试图使第二个对话框在用户破坏第一个对话框的同时在第一个对话框上单击“确定”后提示用户。

这是我在用户单击主窗口本身上的按钮后弹出的第一个对话框。

void displayDialogW(HWND hWnd)
{
    HWND hDlg = CreateWindowW(L"myDialogClass", L"Enter Desired Width", WS_VISIBLE | WS_OVERLAPPEDWINDOW, 0, 150, 300, 150, hWnd, NULL, NULL, NULL);

    CreateWindowW(L"static", L"Width: ", WS_VISIBLE | WS_CHILD | WS_BORDER, 30, 20, 100, 20, hDlg, NULL, NULL, NULL);
    CreateWindowW(L"edit", L"...", WS_VISIBLE | WS_CHILD | WS_BORDER, 80, 20, 180, 20, hDlg, NULL, NULL, NULL);

    CreateWindowW(L"button", L"OK", WS_VISIBLE | WS_CHILD, 120, 60, 30, 30, hDlg, (HMENU)5, NULL, NULL);

    TCHAR buff[1024];
    GetWindowText(hDlg, buff, 1024);
    desiredWidth = _wtoi(buff);

    EnableWindow(hWnd, false);
}

第二个对话框与第一个对话框大致相同,但是我不确定如何操作第一个对话框上的按钮以确保它打开第二个对话框并同时销毁第一个窗口。

我找到了一个名为DestroyWindow的函数,但它需要一个hDlg输入,因此我无法完全将其放在我的dialogprodecure命令函数中。因此,我不太确定该如何处理。

dxiv

如果第二个对话框将被立即销毁,则不能将第一个对话框作为父对话框。您可以改为打开第二个对话框,将其父级设置为与第一个相同的父级,然后可以安全地销毁第一个对话框。

case IDOK:                                          // assuming hWnd is first dialog
{
    createSecondDialog(GetWindow(hWnd, GW_OWNER));  // open second dialog
    DestroyWindow(hWnd);                            // close first dialog
}

这是在使用GetWindow(hWnd, GW_OWNER)而不是GetParent(hWnd)因为displayDialogW创建具有WS_OVERLAPPED样式的窗口,在这种情况下,传递给CreateWindowW调用的内容必须是新窗口的所有者(根据所拥有窗口的文档)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

两个对话框setAlwaysOnTop(true):生成的第二个对话框在第一个对话框之后

Android-顺序/嵌套对话框,第二个对话框关闭第一个

第一个对话框

我如何隐藏我的第二个表单对话框而不关闭我的第一个表单?

第一个活动中显示的对话框,而不是创建片段的对话框

使用第一个对话框的关闭图标关闭两个对话框窗口

jquery 第一个对话框与对话框的其余部分不一致

通过在bot框架v4中跳过第一个对话框的第一步,将第一个对话框的瀑布步骤调用到其他对话框中

如何在第一个弹出窗口之前渲染对话框?

PrimeNg p对话框未在第一个显示屏上居中

AnsgularJS-modelService无法关闭第一个对话框

在另一个对话框上创建对话框

防止jQuery UI对话框将焦点设置到第一个文本框

用斜角的第二个对话窗口关闭第一个对话窗口

jQuery:单击第一个按钮后启用第二个按钮

PyQt4:写我的第一个代码时无法打开对话框

在对话框Android之后创建另一个对话框

对话框仅显示一个按钮

创建了一个自定义布局对话框,但在对话框窗口外单击时无法关闭对话框

在活动顶部创建一个透明对话框

在页面内创建一个小对话框

PyQt:如何创建一个对话框作为另一个对话框的子级

JOptionPane在输入后关闭,但应打开第二个输入对话框

打开对话框或创建窗口时,tkinter将打开第二个窗口

Primefaces对话框框架-打开对话框-关闭它-打开另一个对话框

第二个对话框上的C ++ MFC按钮不起作用

如何禁用第二个底部工作表对话框上的后退按钮?

验证失败时,显示的PrimeFaces对话框很少,而不是一个对话框

Slack 用另一个对话框响应对话框提交