1
4
我知道这已经很老了,但我只是偶然发现了它,我知道答案。 在您看到(并编写)的应用程序中,将对话框置于前台的做法 不 打开主窗口,开发人员只是忽略了指定对话框的所有者。 这既适用于模式窗口,如对话框和消息框,也适用于非模式窗口。设置无模式弹出窗口的所有者也会使弹出窗口始终高于其所有者。 在Win32 API中,打开对话框或消息框的函数将所有者窗口作为参数:
同样,在.NET WinForms中,可以指定所有者:
此外,在WinForms中,很容易设置无模式窗口的所有者:
或者,相当于:
在直接的WinAPI代码中,可以在创建无模式窗口时设置该窗口的所有者:
或之后:
或(64位兼容)
请注意,MSDN有以下内容 SetWindowLong[Ptr] :
这有点误导人,因为这似乎意味着上面最后两个片段是错误的。事实并非如此。打电话
|
2
1
单击任务栏图标时,Windows将发送 WM U激活 向应用程序发送消息。 你确定你的代码通过了 WM U激活 致 窗口过程 窗口处理程序? |
3
0
对话框的父窗口设置是否正确? 在我发布这篇文章之后,我启动了自己的Windows窗体应用程序,并复制了您描述的问题。我有两个对话框,一个工作正常,另一个不正常,我看不出任何直接的原因是为什么他们的行为不同。如果我知道的话,我会更新这篇文章的。 陈雷蒙,你在哪! |
Community wiki · 需要改变的用户界面模式? 1 年前 |
LITzman · 使用状态处理颜色主题更改 1 年前 |
Community wiki · 进程。退出(0):输出消失? 1 年前 |
arsaces · 将文本添加到特定文件的末尾 2 年前 |
YGranja · 库<图形。h> MinGW-W64缺少 2 年前 |
Felipe Palermo · Ctrl键仍被按下,按键事件() 2 年前 |
HCJ · win cmd中的批处理脚本循环 2 年前 |