資源描述:
《MFC中添加狀態(tài)欄_顯示時間》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、MFC中添加狀態(tài)欄1.首先在stringtable里添加兩個字串,ID分別為IDS_INDICATOR_MESSAGEandIDS_INDICATOR_TIME2.在你的dlg.h類里面加個CStatusBarm_bar;3.在dlg.cpp開頭加上staticUINTindicators[]={????IDS_INDICATOR_MESSAGE,????IDS_INDICATOR_TIME};4.OnInitDialog里面加上m_bar.Create(this);//Wecreatethestatusbarm_bar.SetIndi
2、cators(indicators,2);//SetthenumberofpanesCRectrect;GetClientRect(&rect);//Sizethetwopanesm_bar.SetPaneInfo(0,IDS_INDICATOR_MESSAGE,????SBPS_NORMAL,rect.Width()-100);??????m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH,0);//ThisiswhereweactuallydrawitonthescreenRepo
3、sitionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,????ID_INDICATOR_TIME);5.時間顯示OnInitDialog里面加SetTimer(1,1000,NULL);為你的dlg類添加WM_TIMER的響應(yīng)函數(shù),在其中添加代碼:????????CTimet1;????????t1=CTime::GetCurrentTime();????????m_bar.SetPaneText(1,t1.Format("%H:%M:%S"));????CDialog:
4、:OnTimer(nIDEvent);這樣添加的程序剛開始運(yùn)行時在時間一欄中顯示的是初始設(shè)置的字符,為了使程序在剛開始運(yùn)行時就顯示系統(tǒng)時間,可在m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH,0);后添加如下代碼:CTimet1;???????t1=CTime::GetCurrentTime();??????m_bar.SetPaneText(1,t1.Format("%H:%M:%S"));這樣在程序剛啟動時就會顯示系統(tǒng)時間,然后實(shí)時更新。以上編譯完成后,可能會彈不出程序需要清理
5、解決方案,重新生成解決方案同時狀態(tài)欄顯示的是:設(shè)置字符串的時候的文字信息///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////本來以為自己對MFC有所了解的,最近再寫程序的時候才發(fā)現(xiàn),原來我對MFC一竅不通,記錄一下吧:?????????第一步、先件兩個字符串資源:IDS_STATESTRING1,IDS_STATESTRING2,
6、分別用來顯示提示信息和版權(quán)信息!?????????第二步、創(chuàng)建一個數(shù)組,分別將上面的兩個字符串資源ID寫到里面:staticUINTindicators[]={IDS_STATESTRING1,IDS_STATESTRING2};?????????第三步、再M(fèi)FC的對話框類中添加成員變量:CStatusBar??m_wndStatusBar;???????第四步、由于創(chuàng)建狀態(tài)欄要再主對話框創(chuàng)建成功以后創(chuàng)建,所以就再對話框初始化的時候添加吧!?????????到這里就創(chuàng)建好了!?????????如果要調(diào)整狀態(tài)欄每個窗格的大小可以這樣,比如
7、我要調(diào)整第一個窗格的大小:m_WndStatusBar.SetPaneInfo(0,m_WndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,650);?????????在程序中,如果要改變制定窗格中文字的化,這樣:m_WndStatusBar.SetPaneText(0,"提示:恭喜你,參數(shù)設(shè)置成功...");?????????如果出現(xiàn)字符不能正常顯示等問題的話,需要給這個控件添加Update處理函數(shù):????CRectrect;????GetClientRect(rect);????if(!m_wndSta
8、tusBar.Create(this)
9、
10、!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)))???{????