MFC非模态对话框嵌入桌面

a229013811 2011-07-08 10:01:43
我在要嵌入桌面的对话框的OnInitDialog()中加入
HWND hDesktop = ::FindWindow( "Progman ", NULL);
hDesktop = ::GetWindow(hDesktop, GW_CHILD);
CWnd* pWndDesktop = CWnd::FromHandle(hDesktop);
this-> SetParent(pWndDesktop);


还是不行,点显示桌面,还是会最小化对话框。

请问怎么解决
...全文
243 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ndy_w 2011-07-08
  • 打赏
  • 举报
回复
做成appbar
hahayezhe112 2011-07-08
  • 打赏
  • 举报
回复
显示桌面,窗口都最小化很正常啊,
你试下将窗口设为Z序的顶端,或者在桌面显示后的代码跟句最大化窗口
Eleven 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 visualeleven 的回复:]
C/C++ code

HWND hDesktop = ::FindWindow(_T("Progman"), NULL);
hDesktop = ::GetWindow(hDesktop, GW_CHILD);
::SetParent(GetSafeHwnd(), hDesktop);
[/Quote]
Sorry
,代码一样的,你说的点显示桌面,还是会最小化对话框是什么意思?
Eleven 2011-07-08
  • 打赏
  • 举报
回复
HWND hDesktop = ::FindWindow(_T("Progman"), NULL);
hDesktop = ::GetWindow(hDesktop, GW_CHILD);
::SetParent(GetSafeHwnd(), hDesktop);
hahayezhe112 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a229013811 的回复:]
引用 3 楼 hahayezhe112 的回复:
显示桌面,窗口都最小化很正常啊,
你试下将窗口设为Z序的顶端,或者在桌面显示后的代码跟句最大化窗口

我要的是窗口钉在桌面上,不会因为点了“显示桌面”就最小化
就像那种桌面秀一样 订在桌面的

你说的设置,我不太明白,能详细说说么?
[/Quote]

对话框属性设置里有个Topmost设置为true

我猜测桌面会给每个窗口发送最小化的消息,重写那个消息,把调用基类的最小化代码注释起来

上面都不行的话,就在显示桌面后面 给自己发送个最大化消息的不就行了么!
zyrr159487 2011-07-08
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030107/14/1335027.html
a229013811 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hahayezhe112 的回复:]
显示桌面,窗口都最小化很正常啊,
你试下将窗口设为Z序的顶端,或者在桌面显示后的代码跟句最大化窗口
[/Quote]
我要的是窗口钉在桌面上,不会因为点了“显示桌面”就最小化
就像那种桌面秀一样 订在桌面的

你说的设置,我不太明白,能详细说说么?
a229013811 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 visualeleven 的回复:]
引用 1 楼 visualeleven 的回复:
C/C++ code

HWND hDesktop = ::FindWindow(_T("Progman"), NULL);
hDesktop = ::GetWindow(hDesktop, GW_CHILD);
::SetParent(GetSafeHwnd(), hDesktop);

Sorry
,代码一样的,你说的点显示桌面……
[/Quote]
就是说点了显示桌面,然后窗口就最小化了。
我要的是窗口钉在桌面上,不会因为点了“显示桌面”就最小化

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧