我注意到了Firefox 4,Opera和Chrome以及IE 7/8在標題/標題欄中放置了按鈕和控件,這是如何完成的?控件如何放置在標題欄中?
感謝 http://img199.imageshack.us/img199/3307/slayerf.png
alt text http://img199.imageshack.us/img199/3307/slayerf.png
我注意到了Firefox 4,Opera和Chrome以及IE 7/8在標題/標題欄中放置了按鈕和控件,這是如何完成的?控件如何放置在標題欄中?
感謝 http://img199.imageshack.us/img199/3307/slayerf.png
alt text http://img199.imageshack.us/img199/3307/slayerf.png
什麼他們可能做的是把標題欄完全關閉(通過排除WS_CAPTION窗口樣式),玻璃面積增加了窗口的頂部,然後繪製自己的控件。
請參閱http://msdn.microsoft.com/en-us/magazine/cc163435.aspx更多關於玻璃。
是的,你可以做到這一點..你有使用窗鉤,插入您的DLL的遠程過程和遠程運行DLL的功能。這裏是羽翼豐滿的文章和它打交道: -
爲什麼地球FF/IE /歌劇他們應該注入一些代碼在*他們自己的進程*? – 2010-07-13 08:38:57
也許他們只是簡單地處理WM_NCPAINT消息,並自己繪製非客戶區域(包括邊框和標題欄)的一部分;他們還將處理WM_NCLBUTTONDOWN,WM_NCHITTEST和其他WM_NC *消息以模擬標題欄上按鈕的行爲。或者至少,這是它在Aero之前通常完成的方式;我不知道它改變了這種東西。
大多數MS自己的應用程序(IE,M $ Office)沒有標題欄。他們歷史上使用無證函數來自行繪製(IIRC自XP開始,函數已經正式生效並形成文檔)。在Windows中,不可能完全覆蓋標題欄繪畫:那裏的按鈕沒有應用程序已知的狀態,因此Windows本身必須繪製它們。 – Dummy00001 2010-07-13 12:29:50
是的,你可以做到!看看我關於這個的另一篇文章,那裏我插入工具欄到Microsoft Outlook Express!請點擊這裏 http://www.codeproject.com/KB/COM/EfOelibrary.aspx ..請在低估某人之前檢查一下事實! – thatsalok 2010-07-14 09:40:36
我並不是說你無法通過dll注入來做到這一點,我說如果你想在*你的應用中這樣做(這是OP要求的 - 「他們如何做到這一點」),無需注入任何東西,簡單的事實是,它們的代碼已經按照定義在其自己的進程中運行。順便說一下,你應該在其他帖子下發表你的評論。 – 2010-07-14 12:40:33
我不確定他們這麼做。你能提供一個截圖來說明,並突出顯示控件嗎? – EMP 2010-07-13 05:43:17
看我上面的編輯 – jmasterx 2010-07-13 05:47:42