亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WinForms應用程序中的自定義標題欄/ chrome

WinForms應用程序中的自定義標題欄/ chrome

慕斯王 2019-11-19 14:47:45
我幾乎可以肯定我知道這個問題的答案,但是我希望有一些我忽略的事情。即使在Windows XP上運行,某些應用程序的標題欄和按鈕似乎也具有Vista Aero的外觀。(以Google Chrome和Windows Live Photo Gallery為例。)我知道從WinForms實現此目的的一種方法是創建一個無邊界表單并自己繪制標題欄/按鈕,然后進行覆蓋WndProc以確保移動,調整大小,和按鈕單擊可以完成他們應該做的事情(我不清楚具體細節,但可能有一天可以閱讀文檔。)我很好奇是否有一種更容易忽略的方法。也許我忽略了一些API調用或窗口樣式?我相信Google已通過在Chrome中使用“自行滾動窗口”方法為我解決了這一問題。萬一有人有新信息,我將把問題再開放一天,但我相信我自己已經回答了這個問題。
查看完整描述

3 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

Google Chrome 并未使用Vista SDK在XP上實現此目標。如果您src\chrome\browser\views\frame瀏覽一下,則可以根據系統功能定義幾個文件來定義瀏覽器框架。在XP上,看起來像是OpaqueFrame在使用;第19行這樣說:


// OpaqueFrame

//

//  OpaqueFrame is a CustomFrameWindow subclass that in conjunction with

//  OpaqueNonClientView provides the window frame on Windows XP and on Windows

//  Vista when DWM desktop compositing is disabled. The window title and

//  borders are provided with bitmaps.

看起來好像是在使用資源src\chrome\app\theme來繪制框架按鈕。


因此,我希望以某種廉價的方式在XP上啟用Vista主題的希望破滅了。唯一的方法是手動繪制窗口的非客戶區域。我相信類似的方法可能是正確的選擇,因為它可以讓Windows處理非客戶端內容,例如移動和調整窗口大小。


除非有人能找到一種方法神奇地啟用XP上的Vista主題,否則這就是問題的答案,但是我顯然不能將自己的帖子標記為答案。


查看完整回答
反對 回復 2019-11-19
  • 3 回答
  • 0 關注
  • 626 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號