本系列是本人近30年的編程總結,希望對廣大VC++編程愛好者有幫助。為了兼顧各類編程人員,使用VC++的早期版本VC++6.0,最新的VS 2015,VS2018,VS2019等系列版本做法基本一致。
MFC 的CStatic用法(一)
CStatic是VC++的MFC(基礎函數類)中很重要的一個控件類。它的用法非常廣泛。以實類的形式,逐一介紹。為了減少篇幅,使用快捷鍵代替鼠標操作進行運行。
在介紹CStatic之前,先做如下準備工作。作一個靜態文本的顯示,只是在資源文件中顯示,以備下一節用。
1、打開vc++,選擇“new”,出現如下畫面,在工程名項輸入“CCStaticDemoDlg”,選擇“WIN32”,表示所做的APP為32位應用程序。選擇“OK”按鈕,繼續。
2、下一步,選擇對話框,其它缺省繼續即可。結束後,按CTRL+F5運行(以下簡化為運行),出來如下畫面:
3、做一個靜態文本框:在右側的資源工具欄中,選擇文本項“Aa”,如圖紅色部分。在屬性框分別輸入如下圖標識的字符串,確定。
4、運行,如下結果:
5、上一項顯示的文本並不在靜態文本框的上,下的中間位置。做文本框2,定義ID為IDC_STATIC_2(下同,不做重複說明),在屬性框選擇如下,調整到上/下的中間位置。運行結果在第8項。
6、改變前景色,背景色。先按照如下所示,增加保護函數OnCtlColor,用於增加顏色。
7、增加保護的消息映射函數:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); CtlColor
這個需要在OnCtlColor中增加一段程序:
if(DlalogIDValue==IDC_STATIC3)
{
pDC->SetTextColor(m_DispTextColor[COLOR_NUM_1]);
pDC->SetBkColor(m_DispTextBackColor[COLOR_NUM_1]);
return m_DispBrush[COLOR_NUM_1].operator HBRUSH();
}
IDC_STATIC3是文本框的ID號,COLOR_NUM_1是顏色編號,表示編輯框的前景色,背景色。根據需要提前定義好即可。此處,選擇前景為橘紅,背景為白色。
8、執行結果如下,第三個文本框。
9、如果希望是透明的,或者無邊框,那麼,在屬性中分別選擇“Transparent”,取消“Border”的勾選:結果如下,最後一項是透明,第四項為無邊框。
今天就到這裡。歡迎各位關注提問。
下一節,講一下如何用CStatic類進行靜態框文本的更新,如上面的五個靜態文本框動態刷新,以及多行文本的顯示刷新控制。
閱讀更多 beijingwanger 的文章