程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> VC++環境下浮動工具條地編制程序

VC++環境下浮動工具條地編制程序

編輯:C#基礎知識

許多程序員都希望自己的程序能更象商業化程序,特別是希望自己的程序工具 條能夠象WINDOWS95下的OFFICES一樣具有浮動效果。針對VISUALC++編程環境, 以下分別介紹了兩種產生浮動工具條的方法。各有其優點和不足,可供程序員選擇。 
第一種方法
該方法最為簡單,利用VC中的工具條的系統未公布的隱含參數 TBSTYLE_FLAT,不需更改原由程序只要在程序中添加4條語句即可實現浮動效果。 不過該方法只能產生簡單的浮動工具條,而且沒有象OFFICES中工具條右側的拖 動條gripper。而且該方法在VC50下存在嚴重的缺陷,當拖動工具條時,系統不 能對工具條進行刷新,因此會產生移動工具條到新位置時,原處仍有工具條。主 要是負責工具條的動態連接庫COMCTL32.DLL的BUG。該問題在VC60中由於更新了 該動態連接庫而得以解決。程序員如果使用的是VC5版可以用新的版本COMCTL32.DLL (4.72版以上)替換該動態連接庫來解決。 

具體方法如下: 

int CMainFrame::OnCreate
(LPCREATESTRUCT lpCreateStruct)
{
...
m_wndToolBar.SetBarStyle
(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | 
CBRS_SIZE_DYNAMIC|TBSTYLE_FLAT);

//添加以下4句語句,產生浮動效果 
LONG lStyle;
lStyle=GetWindowLong
(m_wndToolBar,GWL_STYLE);
lStyle=lStyle|TBSTYLE_FLAT;
SetWindowLong(m_wndToolBar,
GWL_STYLE,lStyle);

m_wndToolBar.EnableDocking
(CBRS_ALIGN_ANY);
...
}

第二種方法
該方法是對MFC原來的CTOOLBAR類進行繼承,主要是重載成員函數 OnWindowPosChanging(LPWINDOWPOS lpWndPos);OnPaint();OnNcPaint();OnNcCalcSize(); 實現浮動工具條。使用本類,只要將以下的程序代碼FlatToolBar.h和FlatToolBar.Cpp 加入項目,並用INCLUDE將FlatToolBar.H包含到繪制主窗口的CMainFrame中,然後把你 的原先定義工具條變量的CToolBar類變成 CFlatToolBar類,並在建立工具條後調用 SetFlatLookStyle()函數設置浮動方式。為方便以後其它使用程序,可以在該類 上右擊鼠標,選擇Add to Gallery將CFlatToolBar類存入類庫以便下次使用。

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