1. 程式人生 > >VC2005 MFC靜態文字框背景色設定

VC2005 MFC靜態文字框背景色設定

最近在需要用MFC做一個上位機,第一次接觸這個東西我想把我在這過程中遇到的問題寫下來,希望也能幫助遇到同樣問題的朋友。有什麼地方不對的請各位指正。

我在利用MFC做登入介面時出現了一個問題。我發現如果直接有工具箱拖放一個靜態文字到程式視窗時文字框的背景顏色是灰色,字型為黑色,且在屬性視窗沒有修改文字顏色的選項。效果圖如下。

圖1 紅色矩形框中預設文字框顏色

這樣顯示就和背景顏色很不協調。我希望文字框以黑底白字顯示。由於我是第一次使用MFC做上位機,對許多東西都不明白,在網上查的資料很多是基於VC6.0開發的,關鍵還只有程式碼。經過我的一番摸索我終於解決了這個問題,下面是我解決的具體步驟,希望能幫到和我一樣的小白。

1、首先在VC2005平臺上不能通過直接右擊視窗類來新增系統訊息處理函式。在VC2005中我們需要在文字框所在視窗類上右鍵選擇屬性,之後點選閃電右邊的事件圖示,如下圖。


圖2 選擇紅色箭頭所指的圖示 2、在事件中找到WM_CTLCOLOR事件,之後在右邊單元格下拉新增。 3、在類所屬cpp檔案中找到下列函式。
HBRUSH CDengLuDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{.......}
4、在上面函式中新增下列程式碼。其中IDC_STATIC_1換為你靜態文字框所對應的文字ID即可。
if( IDC_STATIC_1  ==  pWnd->GetDlgCtrlID())//判斷髮出訊息的空間是否是該靜態文字框
		{
			pDC->SetTextColor(RGB(255,255,255));//設定文字顏色為白色
			pDC->SetBkMode(OPAQUE);//設定文字背景模式為透明
			pDC->SetBkColor(RGB(0,0,0));//設定文字背景為黑色
			hbr=CreateSolidBrush(RGB(0,0,0));//控制元件的背景色為黑色
		}
5、最後執行時效果如下。
圖  3 最終執行效果文字框黑底白字顯示 最後感謝附上幫助過我的帖子: 程式設計中如有問題可以查閱微軟MSDN幫助工具。