none
如何製作像Firefox 5.0 標題列的其它按鈕? RRS feed

  • 問題

  • 開發環境與類型;Windows 7 64bit , Microsoft Visual Studio 2010, Windows Application

     

    問題:我想在標題列上新增除了關閉、放到最大、縮到最小以外的按鈕,像以下此圖的左上角有自己製作的按鈕

    http://imageshack.us/photo/my-images/807/snap2y.png/

     

    我原本的想法是在標題列上面用GDI+畫圖形上去,但是不知道如何建立能繪圖視窗標題列的Graphics,

    煩請各位給個思路,謝謝:)

    2011年7月24日 上午 03:07

解答

  • 我沒試過這樣做, 不過這看起來是要 動用到Win32 API了

    請參閱 MSDN文件庫

    [Control.CreateParams 屬性]

    在其中備註有說明

    CreateParams 屬性不應覆寫,也不應用於調整您衍生控制項的屬性。 CreateParams.CaptionCreateParams.WidthCreateParams.Height 等屬性應由您控制項中對應的屬性設定 (例如:Control.TextControl.WidthControl.Height)。 只有在包裝標準 Windows 控制項類別,或者設定 Windows Form 命名空間未提供的樣式時,才應擴充 CreateParams 如需建立控制項參數的詳細資訊,請參閱 MSDN Library 的 CreateWindow CreateWindowEx 函式和 CREATESTRUCT 結構文件,其網址為 http://msdn.microsoft.com/library。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2011年7月24日 上午 06:44
    版主

所有回覆

  • 我覺得比較簡單的方式應該是設成無框視窗, 也就是將 FormBorderStyle 設成 None, 然後自己做外框套上去

    作法很接近 "不規則視窗".

    你可以參考以下這一篇

    http://social.msdn.microsoft.com/Forums/zh-HK/242/thread/b46cc1b4-e11a-4bb6-a3bf-1fe806253e4b


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年7月24日 上午 03:51
    版主
  • 您好

    參考 larrynung 前輩的文章

    [C#][VB.NET]自定義.NET WindowForm表單介面

    http://www.dotblogs.com.tw/larrynung/archive/2008/11/11/5959.aspx


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年7月24日 上午 05:21
    版主
  • 感謝 Bill Chung 小歐ou 回答,

    但是我想堅持在標題列上新增這種圖形,並且可以建立按鈕事件,因為我還是希望有它原來的框架,請問還有其它方法可以參考嗎?

    2011年7月24日 上午 06:07
  • 我沒試過這樣做, 不過這看起來是要 動用到Win32 API了

    請參閱 MSDN文件庫

    [Control.CreateParams 屬性]

    在其中備註有說明

    CreateParams 屬性不應覆寫,也不應用於調整您衍生控制項的屬性。 CreateParams.CaptionCreateParams.WidthCreateParams.Height 等屬性應由您控制項中對應的屬性設定 (例如:Control.TextControl.WidthControl.Height)。 只有在包裝標準 Windows 控制項類別,或者設定 Windows Form 命名空間未提供的樣式時,才應擴充 CreateParams 如需建立控制項參數的詳細資訊,請參閱 MSDN Library 的 CreateWindow CreateWindowEx 函式和 CREATESTRUCT 結構文件,其網址為 http://msdn.microsoft.com/library。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2011年7月24日 上午 06:44
    版主
  • 如果考慮到畫面排版的話,用 TableLayout 就可以自動排版... 我是這樣兜出來的~


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年7月24日 下午 02:42