-- 作者:admin
-- 发布时间:11/9/2004 2:26:00 AM
-- [合集] 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小
发信人: Nineteen (-_-#!), 信区: DotNET 标 题: [合集] 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? (转载) 发信站: BBS 水木清华站 (Wed Nov 5 08:22:19 2003), 站内 ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 21:04:48 2003) 提到: 发信人: a2o (alpha), 信区: Programming 标 题: 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? 发信站: BBS 水木清华站 (Tue Jun 17 14:11:36 2003), 转信 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? 就好像Winamp,或者蚂蚁、快车的浮动窗口那样。 ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 21:33:52 2003) 提到: 哪位大侠帮帮忙阿! 谢谢了呀! 【 在 a2o (alpha) 的大作中提到: 】 ∶发信人: a2o (alpha), 信区: Programming ∶标 题: 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? ∶发信站: BBS 水木清华站 (Tue Jun 17 14:11:36 2003), 转信 ∶怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? ∶就好像Winamp,或者蚂蚁、快车的浮动窗口那样。 ☆─────────────────────────────────────☆ DRAGONESE (龙裔◎DotNET版有意思) 于 (Tue Jun 17 21:35:11 2003) 提到: 把OnMinimize一类的事件自己处理一下,或许能行 【 在 a2o (alpha) 的大作中提到: 】 ∶发信人: a2o (alpha), 信区: Programming ∶标 题: 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? ∶发信站: BBS 水木清华站 (Tue Jun 17 14:11:36 2003), 转信 ∶怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? ∶就好像Winamp,或者蚂蚁、快车的浮动窗口那样。 ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 21:48:18 2003) 提到: OnMinimize??有这个吗? 能不能说的详细一点?谢谢了!! 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶把OnMinimize一类的事件自己处理一下,或许能行 ☆─────────────────────────────────────☆ DRAGONESE (龙裔◎DotNET版有意思) 于 (Tue Jun 17 21:51:32 2003) 提到: 不是我没有说清楚,是你没有说清楚 什么环境,什么编程语言,开发什么程序都没有说 你叫人怎么回答? 【 在 a2o (alpha) 的大作中提到: 】 ∶OnMinimize??有这个吗? ∶能不能说的详细一点?谢谢了!! ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 22:01:01 2003) 提到: sorry!sorry!是我没说清:p .NET环境,Visual C#或c++语言, 单击“Quick Launch”上的“Show Desktop”图标, 或按快捷键“Win+D”或“Win+M”, 均不会将该程序最小化。 要达到这样的效果,要怎么做? 谢谢,谢谢! 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶不是我没有说清楚,是你没有说清楚 ∶什么环境,什么编程语言,开发什么程序都没有说 ∶你叫人怎么回答? ☆─────────────────────────────────────☆ DRAGONESE (龙裔◎DotNET版有意思) 于 (Tue Jun 17 22:02:48 2003) 提到: c#和c++差不少,到底是什么? c++是managed还是unmanaged? 【 在 a2o (alpha) 的大作中提到: 】 ∶sorry!sorry!是我没说清:p ∶.NET环境,Visual C#或c++语言, ∶单击“Quick Launch”上的“Show Desktop”图标, ∶或按快捷键“Win+D”或“Win+M”, ∶均不会将该程序最小化。 ∶要达到这样的效果,要怎么做? ∶谢谢,谢谢! ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 22:07:06 2003) 提到: 这个…… 还是说说C#吧:P 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶c#和c++差不少,到底是什么? ∶c++是managed还是unmanaged? ☆─────────────────────────────────────☆ DRAGONESE (龙裔◎DotNET版有意思) 于 (Tue Jun 17 22:14:59 2003) 提到: 关于在C#中如何控制最小化,你可以看下面这篇文章,很精辟 http://expert.csdn.net/Expert/topic/1518/1518978.xml?temp=.9423487 【 在 a2o (alpha) 的大作中提到: 】 ∶这个…… ∶还是说说C#吧:P ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 22:38:06 2003) 提到: 试了一下“TheAres(班门斧)”所提供的方法,单击窗口上的关闭或 最小化按钮,是可以弹出对话框,以取代默认动作(关闭或最小化), 可是单击那个“Show Desktop”图标或用快捷键的话,还是会最小化, 也没有弹出对话框阿:( 单击那个图标,会发个什么消息呢?老大知道吗? 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶关于在C#中如何控制最小化,你可以看下面这篇文章,很精辟 ∶http://expert.csdn.net/Expert/topic/1518/1518978.xml?temp=.9423487 ☆─────────────────────────────────────☆ DRAGONESE (龙裔◎DotNET版有意思) 于 (Tue Jun 17 22:43:37 2003) 提到: 我估计可能不是最小化消息阿 我也不知道了:( 【 在 a2o (alpha) 的大作中提到: 】 ∶试了一下“TheAres(班门斧)”所提供的方法,单击窗口上的关闭或 ∶最小化按钮,是可以弹出对话框,以取代默认动作(关闭或最小化), ∶可是单击那个“Show Desktop”图标或用快捷键的话,还是会最小化, ∶也没有弹出对话框阿:( ∶单击那个图标,会发个什么消息呢?老大知道吗? ☆─────────────────────────────────────☆ Excelly (无法抗拒) 于 (Tue Jun 17 22:52:23 2003) 提到: 用OnSizeChanged() 你所说的情况都可以触发 其他东西再说了 抛块砖吧 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶我估计可能不是最小化消息阿 ∶我也不知道了:( ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 23:12:12 2003) 提到: /* * System Menu Command Values */ #define SC_SIZE 0xF000 #define SC_MOVE 0xF010 #define SC_MINIMIZE 0xF020 #define SC_MAXIMIZE 0xF030 #define SC_NEXTWINDOW 0xF040 ………… 这些常量对应于系统菜单(应该就是单击Control box出来的那个菜单吧)中的菜单项, 单击Show Desktop图标所发的消息,应该是不属于这个系列的,残念的说。 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶我估计可能不是最小化消息阿 ∶我也不知道了:( ☆─────────────────────────────────────☆ Excelly (无法抗拒) 于 (Tue Jun 17 23:25:08 2003) 提到: 刚才试了一下 下面的代码可以做到 private void Form1_Resize(object sender, System.EventArgs e) { if(WindowState == FormWindowState.Minimized) this.WindowState = FormWindowState.Normal; } 可是这个窗口必须是topmost属性为true的 否则在点"显示桌面"的时候还是会隐藏 这个要求似乎是必须的 因为winamp如果不设为"always on top"的话 在显示桌面时同样会隐藏 【 在 a2o (alpha) 的大作中提到: 】 ∶发信人: a2o (alpha), 信区: Programming ∶标 题: 怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? ∶发信站: BBS 水木清华站 (Tue Jun 17 14:11:36 2003), 转信 ∶怎样能使窗口不会因为用户单击了"Show Desktop"图标而被最小化? ∶就好像Winamp,或者蚂蚁、快车的浮动窗口那样。 ☆─────────────────────────────────────☆ a2o (alpha) 于 (Tue Jun 17 23:52:44 2003) 提到: 我测试的结果: 1.topmost为false时也不会最小化的,但winamp不always on top时,的确是会最小化; 2.单击Show Desktop图标或按快捷键时窗口会闪烁; 3.同时开了winamp,当其always on top时不闪烁,否则也跟着闪:P 4.“Win+D”快捷键不能使其它窗口还原了; PS:刚刚是想回贴的,结果不知道怎么搞得,给你发了信,呵呵,sorry! 【 在 Excelly (无法抗拒) 的大作中提到: 】 ∶刚才试了一下 ∶下面的代码可以做到 ∶private void Form1_Resize(object sender, System.EventArgs e) ∶{ ∶if(WindowState == FormWindowState.Minimized) ∶this.WindowState = FormWindowState.Normal; ∶} ∶可是这个窗口必须是topmost属性为true的 ∶否则在点"显示桌面"的时候还是会隐藏 ∶这个要求似乎是必须的 ∶因为winamp如果不设为"always on top"的话 ∶................... ☆─────────────────────────────────────☆ Excelly (无法抗拒) 于 (Wed Jun 18 00:07:01 2003) 提到: re: 1.我的winxppro上面topmost==false时会最小化的 2.这个是必然的,因为是个被动的处理方法嘛,要彻底解决只有在消息循环部分截获了 不过可以减轻的,比如窗口小一点:) 3.4.的情况我这里没有出现,系统的差别?? 【 在 a2o (alpha) 的大作中提到: 】 ∶我测试的结果: ∶1.topmost为false时也不会最小化的,但winamp不always on top时,的确是会最小化; ∶2.单击Show Desktop图标或按快捷键时窗口会闪烁; ∶3.同时开了winamp,当其always on top时不闪烁,否则也跟着闪:P ∶4.“Win+D”快捷键不能使其它窗口还原了; ∶PS:刚刚是想回贴的,结果不知道怎么搞得,给你发了信,呵呵,sorry! ☆─────────────────────────────────────☆ a2o (alpha) 于 (Wed Jun 18 00:17:02 2003) 提到: 有可能,我用的是windows 2000。 唉,猜不到,也找不着,这到底是个什么消息呀,郁闷:( 我还是希望能在消息循环部分就截获掉,闪烁很不爽的说。 【 在 Excelly (无法抗拒) 的大作中提到: 】 ∶re: ∶1.我的winxppro上面topmost==false时会最小化的 ∶2.这个是必然的,因为是个被动的处理方法嘛,要彻底解决只有在消息循环部分截获了 ∶不过可以减轻的,比如窗口小一点:) ∶3.4.的情况我这里没有出现,系统的差别?? ☆─────────────────────────────────────☆ DRAGONESE (龙裔◎DotNET版有意思) 于 (Wed Jun 18 00:20:34 2003) 提到: 我刚才用spy++看了一下 也没有看出个名堂,你也可以试一下啊 【 在 a2o (alpha) 的大作中提到: 】 ∶有可能,我用的是windows 2000。 ∶唉,猜不到,也找不着,这到底是个什么消息呀,郁闷:( ∶我还是希望能在消息循环部分就截获掉,闪烁很不爽的说。 ☆─────────────────────────────────────☆ Excelly (无法抗拒) 于 (Wed Jun 18 00:35:23 2003) 提到: 据我调试: 系统先发一个窗体最小化的消息 然后这个消息的结果被那个事件处理函数解决了 再发一个让桌面在最前端的消息 (有吗?调试的感觉而已,我对windows底层编程不熟:) 然后这个消息的结果被窗体的topmost属性解决了 恩 基本上就是酱紫了 【 在 DRAGONESE (龙裔◎DotNET版有意思) 的大作中提到: 】 ∶我刚才用spy++看了一下 ∶也没有看出个名堂,你也可以试一下啊 ☆─────────────────────────────────────☆ a2o (alpha) 于 (Wed Jun 18 00:58:34 2003) 提到: 哇,我怎么感觉Windows在消息进WndProc之前就已经把窗口最小化了! ft阿! 【 在 Excelly (无法抗拒) 的大作中提到: 】 ∶据我调试: ∶系统先发一个窗体最小化的消息 ∶然后这个消息的结果被那个事件处理函数解决了 ∶再发一个让桌面在最前端的消息 ∶(有吗?调试的感觉而已,我对windows底层编程不熟:) ∶然后这个消息的结果被窗体的topmost属性解决了 ∶恩 ∶基本上就是酱紫了 ☆─────────────────────────────────────☆ Excelly (无法抗拒) 于 (Wed Jun 18 01:02:52 2003) 提到: 恩 这个不太合理的说 即使存在这个现象的话 也应该是windows先对桌面(也是一个窗口)进行操作(置于前端) 影响了那个窗口的可见性吧 【 在 a2o (alpha) 的大作中提到: 】 ∶哇,我怎么感觉Windows在消息进WndProc之前就已经把窗口最小化了! ∶ft阿! ☆─────────────────────────────────────☆ a2o (alpha) 于 (Wed Jun 18 01:25:00 2003) 提到: 恩,是我搞错了。 我好像已经找到那个消息了,应该是(m.LParam.ToInt32() == 0x12f72c), 可是虽然我啥也没干就返回了,窗口却还是被最小化了:( 【 在 Excelly (无法抗拒) 的大作中提到: 】 ∶恩 ∶这个不太合理的说 ∶即使存在这个现象的话 ∶也应该是windows先对桌面(也是一个窗口)进行操作(置于前端) ∶影响了那个窗口的可见性吧 上一篇 返回上一页 回到目录 回到页首 下一篇
|