程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> MFC 工具欄隱藏與顯示,mfc工具欄隱藏

MFC 工具欄隱藏與顯示,mfc工具欄隱藏

編輯:C++入門知識

MFC 工具欄隱藏與顯示,mfc工具欄隱藏


      最近在學MFC,看的是孫鑫的VC++視頻,感覺還不錯。在看到第九節課的時候,講到工具欄的時候,做了個小功能:工具欄的隱藏和顯示,但是有個bug就是一個懸浮的工具欄隱藏後再顯示,就會變成停靠狀態。這裡我又把工具欄的隱藏與顯示又實現了一遍,去掉了這個bug,做到跟MFC中自帶的菜單欄中視圖->工具欄菜單項一樣的功能。

      其實,關於工具欄的隱藏與顯示問題,只需要考慮三種狀態:(1)在停靠狀態下工具欄的顯示與隱藏;(2)在懸浮狀態下工具欄的顯示與隱藏;(3)在懸浮狀態下,通過點擊關閉按鈕去關閉工具欄,然後在顯示工具欄的問題。

      對於上面所述的第二種情況,要記住工具欄在將要隱藏時刻的窗口坐標(x,y),這一點可以在點擊菜單項去隱藏工具欄的時候可以做到。同樣對於第三種情況,要記住工具欄在關閉時刻的坐標位置,在這裡我們可以自己創建一個類CMyToolbar,這個類繼承於CToolbar,在這個類裡面添加WM_WINDOWPOSCHANGED消息處理函數OnWindowPosChanged。這個消息每當工具欄的大小或者位置發生變化是就會觸發,因此我們在每次觸發這個消息的時候,在其處理函數裡面先判讀是否為懸浮狀態,如果是再獲取當前窗口的位置,然後保存起來。

     好了,上面說了那麼多現在開始上代碼。首先先看一下在CMainFrame.h中要添加的變量成員。

     

   然後在CMainFrame.cpp中添加工具欄菜單項的相應函數,具體代碼如下:

 

      最後我們要創建一個CMyToolbar的類,繼承於CToolbar類,其中CMyToolbar.h添加代碼如下:

 

    然後在CMyToolbar中實現OnWindowPosChanged函數

到此,代碼部分全部結束。運行結果演示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved