MFC中设置文本背景颜色和文本颜色为什么会无效?

BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
int MenuCmdID = LOWORD(wParam);
CMenu2View *pView = (CMenu2View*)GetActiveView();
if(MenuCmdID >= IDM_PHONE1 && MenuCmdID < IDM_PHONE1 + pView->m_strArr.GetSize())
{
CClientDC dc(pView);
dc.SetBkColor(GetSysColor(RGB(255, 0, 34)));//为什么我在这里
//设置了文本背景颜色和文本颜色,但是打印出来的时候依然是白底黑字呢?
dc.SetTextColor(GetSysColor(RGB(255, 0, 34)));//
dc.TextOut(0, 0, pView->m_strArr.GetAt(MenuCmdID-IDM_PHONE1));
return TRUE;
}
return CFrameWnd::OnCommand(wParam, lParam);
}

你好,改两句代码:
dc.SetBkColor(RGB(255, 0, 34));
dc.SetTextColor(RGB(255, 0, 34));

如果还是不行,在Textout后面加一句:::Invalidate(FALSE)
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-02
改两句代码:
dc.SetBkColor(RGB(255, 0, 34));
dc.SetTextColor(RGB(255, 0, 34));

如果还是不行,在Textout后面加一句:::Invalidate(FALSE)

在MFC中怎样修改对话框背景和静态文本颜色的设置
可以在该函数中设置pDC->SetBkMode(TRANSPARENT);将文本的背景设置为透明。可以在该函数中设置pDC->SetTextColor(RGB(255,0,0));将文本的颜色设置为红色。也可以指定某一静态文本的字体颜色,可以加如下判断:switch(pWnd->GetDlgCtrlID()){ case IDC_INFO:pDC->SetBkMode(TRANSPARENT);pDC->SetTextCol...

SetBkColor函数为什么不起作用
COLORREF SetBkColor(HDC hDC, COLORREF color) 这个函数并不能用来设置窗口的背景颜色,而只是用于设置文本的背景颜色。要设置窗口背景颜色,其实有很多种方法,如果是在MFC裏面,那就方便很多,但是在Win32 的SDK环境下那我就只知道在用RegisterClass函数注册窗口类的时候,可以设置WNDCLASS结构中的HBRUSH h...

MFC 如何使tab控件背景颜色与对话框颜色一致
3、刷颜色,通过GetClientRect获得区域,然后用CBrush刷颜色 4、你会发现所有的标签都没了,但控件及标签的颜色都刷上了 5、用GetItmeRect获取各个标签的坐标,然后利用moveto lineto画线 6、在给每个标签画线的过程中利用Textout函数输出原本的文本 7、如果需要,在选中的标签上可以刷不同的颜色 8...

为什么设置MFC文本框的背景颜色只有一行是设置的?而不是整个填充的?
TODO:如果默认的不是所需画笔,则返回另一个画笔 return hbr;}

MFC文本编辑器怎样改变字体颜色
添加WM_CTLCOLOR消息响应,加入函数\/\/控件颜色if(nCtlColor== CTLCOLOR_EDIT)pDC->SetTextColor(RGB(255,0,0));\/\/设置颜色为红色

MFC对话框的编辑框里的文字怎样改颜色?
文本颜色和文本字体以及文本编辑框的背景色可以在父类的OnCtlColor中设置 HBRUSH CMFCDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);if (pWnd->GetDlgCtrlID() == IDC_MYEDIT){ pDC->SetTextColor(RGB(0,0,255)); \/...

MFC 如何改变按钮文字颜色
自己写一个MFC类继承CBUtton类,如CCustomButton类用来重绘按钮 给自己的按钮加一个控件变量,然后把CButton改成CCustomButton即可 附件里是我自己写的一个CCustomButton类,你可以直接加入到你的工程里。

在mfc怎样设置编辑框里的第i行文本的背景颜色 因为编辑框有多行文本...
编辑框是没有那个功能的,如果你想要实现这个功能的话,你可以用list control控件,具体的用法可以到百度上查一下,或者到msdn上去查询一下,看看这个控件有哪些接口可以用,自己动手去查,对你的学习有利。。。

求MFC高人 MFC中怎么样设置字体颜色
TODO: 如果默认的不是所需画笔,则返回另一个画笔 if (IDC_EDIT_DEMO==pWnd->GetDlgCtrlID())\/\/判断正在绘制的是不是指定的控件 { pDC->SetTextColor(RGB(255,0,0));\/\/设置他的文本显示 return hbr;} return hbr;} 还有一种是一个可以使用CColorDialog类来操作颜色的。。。你研究研究 ...

请教MFC静态文本背景设置为透明
静态文本框的默认背景是灰色,也就是对话框的“底色”。只有文本框(编辑框)的默认背景为白色。如果是静态文本框,那么控件属性里设置选中TRANSPARENT,你上面的代码就可以了。如果是编辑框,那么需要改变刷子hbr 为空画刷。但编辑框,只在OnCtrlColor里面做,效果是很差的,你需要处理OnEraseBackGround,...

相似回答