手把手教你學習VC++編程 第一節

本系列是本人近30年的編程總結,希望對廣大VC++編程愛好者有幫助。為了兼顧各類編程人員,使用VC++的早期版本VC++6.0,最新的VS 2015,VS2018,VS2019等系列版本做法基本一致。

MFC 的CStatic用法(一)

CStatic是VC++的MFC(基礎函數類)中很重要的一個控件類。它的用法非常廣泛。以實類的形式,逐一介紹。為了減少篇幅,使用快捷鍵代替鼠標操作進行運行。

在介紹CStatic之前,先做如下準備工作。作一個靜態文本的顯示,只是在資源文件中顯示,以備下一節用。

1、打開vc++,選擇“new”,出現如下畫面,在工程名項輸入“CCStaticDemoDlg”,選擇“WIN32”,表示所做的APP為32位應用程序。選擇“OK”按鈕,繼續。

手把手教你學習VC++編程 第一節


2、下一步,選擇對話框,其它缺省繼續即可。結束後,按CTRL+F5運行(以下簡化為運行),出來如下畫面:

手把手教你學習VC++編程 第一節


3、做一個靜態文本框:在右側的資源工具欄中,選擇文本項“Aa”,如圖紅色部分。在屬性框分別輸入如下圖標識的字符串,確定。

手把手教你學習VC++編程 第一節


4、運行,如下結果:

手把手教你學習VC++編程 第一節


5、上一項顯示的文本並不在靜態文本框的上,下的中間位置。做文本框2,定義ID為IDC_STATIC_2(下同,不做重複說明),在屬性框選擇如下,調整到上/下的中間位置。運行結果在第8項。

手把手教你學習VC++編程 第一節


6、改變前景色,背景色。先按照如下所示,增加保護函數OnCtlColor,用於增加顏色。

手把手教你學習VC++編程 第一節


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、執行結果如下,第三個文本框。

手把手教你學習VC++編程 第一節


9、如果希望是透明的,或者無邊框,那麼,在屬性中分別選擇“Transparent”,取消“Border”的勾選:結果如下,最後一項是透明,第四項為無邊框。

手把手教你學習VC++編程 第一節


今天就到這裡。歡迎各位關注提問。

下一節,講一下如何用CStatic類進行靜態框文本的更新,如上面的五個靜態文本框動態刷新,以及多行文本的顯示刷新控制。



分享到:


相關文章: