• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Jiang's C++ Space

            創作,也是一種學習的過程。

               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            用過Windows Mobile的人都知道,一般情況下,按下掛機鍵(就是掛電話那個按鍵,通常是紅色的),就相當于Windows XP中點了那個“顯示桌面”的圖標,所有窗口都最小化,桌面顯示出來了,Windows Mobile中的“今日”(Today)就相當于Windows的桌面,按掛機鍵,“今日”就顯示出來了,別的窗口都隱藏(最小化)。

            這個效果我是想模仿一個叫Spb Home的桌面美化程序,用過Spb Home的都很清楚這是怎樣一個效果。

            那我現在有這么個需求,我希望我的程序不被掛機鍵隱藏,也就是說希望我的程序取代“今日”,在別的窗口都被隱藏或關閉的時候,我的程序窗口依舊顯示。下面是我的思路軌跡:

            做Windows編程出身的我首先想到WM_SHOWWINDOW消息,我程序的主窗口被最小化的時候應該能夠收到這個消息,我只要對這個消息進行相關處理即可,但令我感到意外的是Windows Mobile似乎沒有這個消息,到網上search,沒有答案,納悶……

            沒有WM_SHOWWINDOW,終歸有別的吧?于是我用Windows CE Remote Spy觀察一個窗口在按下掛機鍵時候接收到的消息,分析了多種情況后,我發現有一個消息確實是按下掛機鍵時候能接收到的,但這個消息沒有在MSDN中被提及,我只知道它的值為0xC005。



            響應這個消息,每次收到的時候調用一下SetForegroundWindow(),這么一來,果然奏效了!但問題來了,每次按掛機鍵的時候,屏幕總要閃一下,為什么?原因就是我的窗口收到0xC005消息的時候,它已經被隱藏了,我重新把它show出來當然要閃一下,這個效果并不理想。

            繼續想辦法,那能不能通過鉤子來重定義掛機鍵的動作呢?后來想想不妥,因為我并不是要屏蔽或者修改掛機鍵的功能,我只是不想讓我的窗口被它隱藏而已,況且鉤子是undocumented的東西,恐怕不太好。

            再思考,如果掛機鍵的功能就是被默認地定義為隱藏所有窗口,那我如何阻止它呢?這是不太可能的吧?所以我想來想去還是想到Spb Home了,看看Spb Home的窗口究竟有什么不同,結果還真的有了新發現,問題也因此得解。大家看:

            看窗口風格這個值,0x90010000,跟我的程序最大的不同是:首bit是1!第一個bit是什么意思呢?是WS_POPUP,于是我有樣學樣,在我的窗口上加上WS_POPUP屬性,就OK了!WS_POPUP窗口不會自動最大化顯示,我們要指定它的顯示位置和大小,這是跟overlapped window的不同,關于popup,overlapped這些東西,我有另一篇比較完整的文章來闡述的,地址是:
            http://blog.csdn.net/guogangj/archive/2008/12/06/3460267.aspx

            問題終于解決了,沒想到處理起來這么簡單,但知道這么弄,卻讓我研究了好久。
            posted on 2010-07-14 15:09 Jiang Guogang 閱讀(640) 評論(0)  編輯 收藏 引用 所屬分類: Windows Embedded Programming
            国产精品99久久久久久宅男| 欧美精品九九99久久在观看| 欧美综合天天夜夜久久| 手机看片久久高清国产日韩| 久久久久成人精品无码中文字幕| 精品国产福利久久久| 久久久久亚洲AV成人网人人网站 | 久久久SS麻豆欧美国产日韩| 国产午夜精品理论片久久影视| 亚洲精品WWW久久久久久| 久久精品www人人爽人人| 性高湖久久久久久久久AAAAA| 精品久久久久久亚洲精品| 午夜精品久久影院蜜桃 | 伊人久久成人成综合网222| 99精品久久精品| 久久精品日日躁夜夜躁欧美| 久久亚洲av无码精品浪潮| 国产午夜精品理论片久久影视 | 无码超乳爆乳中文字幕久久| 国产—久久香蕉国产线看观看| 人妻丰满AV无码久久不卡| 久久91精品国产91| 久久精品?ⅴ无码中文字幕| 久久免费高清视频| 久久99精品国产99久久| 91精品国产色综合久久| 久久人人爽人人爽人人片AV不| 精品一二三区久久aaa片| 久久人人爽人人爽人人片av麻烦| 性高朝久久久久久久久久| 久久久受www免费人成| 久久久久国产一区二区| 久久国产成人亚洲精品影院 | 中文字幕乱码久久午夜| 99久久做夜夜爱天天做精品| 日韩精品久久久久久久电影| yy6080久久| 国产成人久久AV免费| 狠狠色婷婷综合天天久久丁香| 久久国产精品99久久久久久老狼 |