熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

VC++環境下浮動工具條的編程

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

具體方法如下 

int CMainFrame::OnCreate
(LPCREATESTRUCT lpCreateStruct)
{

m_wndToolBarSetBarStyle
(m_wndToolBarGetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | 
CBRS_SIZE_DYNAMIC|TBSTYLE_FLAT);

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

m_wndToolBarEnableDocking
(CBRS_ALIGN_ANY);

}

第二種方法
    該方法是對MFC原來的CTOOLBAR類進行繼承主要是重載成員函數 OnWindowPosChanging(LPWINDOWPOS lpWndPos);OnPaint();OnNcPaint();OnNcCalcSize(); 實現浮動工具條使用本類只要將以下的程序代碼FlatToolBarh和FlatToolBarCpp 加入項目並用INCLUDE將FlatToolBarH包含到繪制主窗口的CMainFrame中然後把你 的原先定義工具條變量的CToolBar類變成 CFlatToolBar類並在建立工具條後調用 SetFlatLookStyle()函數設置浮動方式為方便以後其它使用程序可以在該類 上右擊鼠標選擇Add to Gallery將CFlatToolBar類存入類庫以便下次使用
From:http://tw.wingwit.com/Article/program/net/201311/13692.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.