如題,設定了3個靜態文本框在一個win32視窗中
在回應訊息的時候加入了如下代碼,結果是3個靜態文本框的顏色都發生了改變
case WM_CTLCOLORSTATIC:
//創建畫刷
hBrush1 = CreateSolidBrush(RGB(245, 246, 250));
hdcStatic = (HDC)wParam;//靜態文本框文字與背景設定
SetTextColor(hdcStatic, RGB(83, 92, 104));
SetBkMode(hdcStatic, TRANSPARENT);//SetBkMode(hdcStatic, RGB(206, 214, 224));SetBkColor(hdcStatic, RGB(255, 107, 129)); //翠綠色
return (INT_PTR)hBrush1;
該如何單獨設定每個靜態文本框的背景和文字顏色呢?
uj5u.com熱心網友回復:
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// TODO: 在此更改 DC 的任何特性
enum {br4Edit1, br4Static1};
static CBrush br[br4Static1 + 1];
if ((HBRUSH)br[br4Edit1] == nullptr)
{
VERIFY(br[br4Edit1].CreateSolidBrush(RGB(0,126,255)));
VERIFY(br[br4Static1].CreateSolidBrush(RGB(122, 23, 255)));
}
// TODO: 如果默認的不是所需畫筆,則回傳另一個畫筆
switch (pWnd->GetDlgCtrlID())
{
case IDC_EDIT1:
{
return br[br4Edit1];
}
case IDC_STATIC1:
return br[br4Static1];
default:
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/214315.html
標籤:界面
上一篇:WebBrowser中Newwindow3新建頁面怎么獲取到需要post的引數
下一篇:各位請給個建議
