



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VC技巧四 - 工具條和狀態(tài)條增強(qiáng)型的狀態(tài)條 首先在你的應(yīng)用中添加一個(gè)新類,這個(gè)類的基類是CStatusBar類。本文中這個(gè)類叫做CEnhanceStatusBar。在頭文件中聲明以下的控件ID和標(biāo)志:#define IDC_PROGRESS 3001 /進(jìn)程條#define IDC_INFOBUTTON 3002 /Info按鈕#define IDC_LEFTBUTTON 3003 /左移按鈕#define IDC_RIGHTBUTTON 3004 /右移按鈕#define ENHANCEBAR_PROGRESS 1 /進(jìn)程條標(biāo)志#define ENHANCEBAR_INFO 2 /Info
2、按鈕標(biāo)志#define ENHANCEBAR_BUTTON 4 /左、右移按鈕標(biāo)志將下列成員函數(shù)和成員變量添加到CEnhanceStatusBar類中,并且根據(jù)你的需要設(shè)置其屬性為public/protected/private:CBitmapButton LeftButton; /左移按鈕CBitmapButton RightButton; /右移按鈕CBitmapButton InfoButton; /Info按鈕CProgressCtrl ProgressControl; /進(jìn)程條/下面的四個(gè)成員函數(shù)返回各個(gè)控件:CBitmapButton& GetLeftButton() re
3、turn LeftButton;CBitmapButton& GetRightButton() return RightButton;CBitmapButton& GetInfoButton() return InfoButton;CProgressCtrl& GetProgressControl() return ProgressControl;UINT ButtonWidth; /按鈕寬度UINT ButtonHeight; /按鈕高度UINT ButtonSpace; /按鈕間距int StatusFlags; /狀態(tài)條標(biāo)志int ProgressPane; /進(jìn)
4、程條所在的pane標(biāo)號(hào)int ButtonPane; /按鈕所在的pane標(biāo)號(hào)BOOL Create(CWnd* wnd, int flags, int progress, int button);/狀態(tài)條生成函數(shù)virtual BOOL AddButtonControl(); /添加按鈕控件virtual BOOL AddProgressControl(); /添加進(jìn)程條控件virtual void PositionControls(); /調(diào)整控件位置virtual void DestroyControls(); /刪除控件/下面是為了測(cè)試按鈕及進(jìn)程條控件而添加的一些函數(shù)及變量CStrin
5、gList Messages; /一組CString,用于存貯訊息POSITION CurrentMessagePosition; /當(dāng)前訊息在List中的位置virtual BOOL AddMessage(CString msg, int pos); /加入一條訊息virtual BOOL ClearMessages(); /刪除所有訊息virtual void SetProgress(BOOL show, int range); /設(shè)置進(jìn)程條編寫構(gòu)造函數(shù)和析構(gòu)函數(shù),并給Create()函數(shù)加入代碼:CEnhanceStatusBar:CEnhanceStatusBar() /初始化參數(shù) B
6、uttonWidth = 14; ButtonHeight = 13; ButtonSpace = 3; CurrentMessagePosition = 0; StatusFlags = 0; ProgressPane = 0; ButtonPane = 0;CEnhanceStatusBar:CEnhanceStatusBar() ClearMessages();/刪除所有訊息 DestroyControls();/刪除控件BOOL CEnhanceStatusBar:Create(CWnd* wnd, int flags, int progress, int button) if (m_
7、hWnd =0) if (!CStatusBar:Create(wnd) return FALSE; ClearMessages(); DestroyControls();/在通過菜單命令改變狀態(tài)條格式時(shí),這個(gè)調(diào)用很重要, /因?yàn)楦骺丶荒苌梢淮?所以必須先刪除 /得到標(biāo)志和pane號(hào) StatusFlags = flags;/flags標(biāo)志狀態(tài)條的格式,有無進(jìn)程條和某些按鈕等。 ProgressPane = progress;/progress表示狀態(tài)條所在的pane號(hào) ButtonPane = button;/button表示按鈕所在的pane號(hào) if (!AddProgressCont
8、rol()/加入進(jìn)程條 return FALSE; if (!AddButtonControl()/加入按鈕 return FALSE; /加入你自己的控件 /if (!AddCustomControl() / return FALSE; /加入你自己的控件 EnableToolTips(TRUE); PositionControls();/調(diào)整控件位置 /調(diào)整你自己的控件的位置 /PositionCustomControl(); /調(diào)整你自己的控件的位置 return TRUE;給AddButtonControl()、AddProgressControl()和DestroyControls(
9、)函數(shù)加入代碼:BOOL CEnhanceStatusBar:AddButtonControl() /設(shè)置ButtonRect CRect ButtonRect; ButtonRect.left = 100; ButtonRect.top = 2; ButtonRect.right = 114; ButtonRect.bottom = 15; /下面加入左移和右移按鈕 if (StatusFlags & ENHANCEBAR_BUTTON) if (!LeftButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, But
10、tonRect,this, IDC_LEFTBUTTON) TRACE0("Failed to create LeftButton buttonn"); return FALSE; if (!LeftButton.LoadBitmaps(IDB_LEFTBUTTON,IDB_LEFTBUTTON_SEL,NULL, IDB_LEFTBUTTON_DIS) TRACE0("Failed to load LeftButton bitmapn"); return FALSE; LeftButton.EnableWindow(FALSE); if(!RightB
11、utton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, ButtonRect,this,IDC_RIGHTBUTTON) TRACE0("Failed to create RightButton buttonn"); return FALSE; if (!RightButton.LoadBitmaps(IDB_RIGHTBUTTON,IDB_RIGHTBUTTON_SEL, NULL,IDB_RIGHTBUTTON_DIS) TRACE0("Failed to load RightButton bit
12、mapn"); return FALSE; RightButton.EnableWindow(FALSE); /下面加入Info按鈕 if (StatusFlags & ENHANCEBAR_INFO) if (!InfoButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, ButtonRect,this,IDC_INFOBUTTON) TRACE0("Failed to create InfoButtonn"); return FALSE; if (!InfoButton.LoadBitmaps(IDB_INFO,IDB_INFO_SEL,NULL,IDB_INFO_DIS) TRACE0("Failed to load InfoButton bitmapn"); return FALSE; InfoButt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波衛(wèi)生職業(yè)技術(shù)學(xué)院《二十世紀(jì)西方文論》2023-2024學(xué)年第二學(xué)期期末試卷
- 廊坊燕京職業(yè)技術(shù)學(xué)院《單片機(jī)課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西省南昌二中、九江一中、新余一中、臨川一中八所重點(diǎn)中學(xué)2025屆高三5月三??荚嚁?shù)學(xué)試題含解析
- 寧夏民族職業(yè)技術(shù)學(xué)院《SAS與統(tǒng)計(jì)分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 內(nèi)蒙古烏海二十二中學(xué)2025年高中畢業(yè)班下學(xué)期開學(xué)考試語文試題含解析
- 延安市延長(zhǎng)縣2025屆三下數(shù)學(xué)期末經(jīng)典試題含解析
- 南開大學(xué)《商務(wù)英語視聽說I》2023-2024學(xué)年第二學(xué)期期末試卷
- 臨床護(hù)理敏感質(zhì)量指標(biāo)解讀
- 二零二五最簡(jiǎn)單山林租賃合同書
- 商場(chǎng)門面商鋪?zhàn)赓U合同書范例
- 公路培訓(xùn)課件
- 藥品網(wǎng)絡(luò)交易服務(wù)三方平臺(tái)質(zhì)量管理體系文件-B2B平臺(tái)(完整版)
- 鋼結(jié)構(gòu)防腐防火應(yīng)用技術(shù)應(yīng)用總結(jié)
- 《胰島素和C肽》課件
- 一年級(jí)數(shù)學(xué)繪本課件
- 2023年國(guó)家公務(wù)員錄用考試《行測(cè)+申論》真題卷(地市級(jí))及答案解析
- DB36T 1641-2022 養(yǎng)老機(jī)構(gòu)突發(fā)事件應(yīng)急預(yù)防與處置規(guī)程
- 《基于stm32的窗簾控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》14000字(論文)
- 國(guó)內(nèi)外小學(xué)音樂跨學(xué)科教學(xué)的研究現(xiàn)狀
- 動(dòng)土作業(yè)安全技術(shù)交底
- 教堂寺廟租賃合同協(xié)議
評(píng)論
0/150
提交評(píng)論