基于单文档的程序pWnd->GetDlgCtrlD无效
本帖最后由 x21iaomi 于 2012-12-03 20:21:09 编辑 基于单文档的程序,怎样使用pWnd->GetDlgCtrlD改变图中文本框的背景颜色和字体颜色??请尽量详细些,高分悬赏!哪位好人做好了,把源程序发我一份吧,QQ2228994392,谢谢!
[最优解释]
我在我的视图里面试了一下,居然可以。。。
你试着将ID名字改下先,比如IDC_STATIC_1,再试一试,否则实在无法看出来你是哪里的问题了。
顺便问下,你是用向导助手生成的函数吧。
HBRUSH CMyStaticView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CView::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID()==ID_CUSTOM_CBUTTON)
{
pDC->SetTextColor(RGB(255,0,0)); //字体颜色
pDC->SetBkColor(RGB(0, 0, 255)); //字体背景色
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
CStatic*pStatic2 = new CStatic;我想用pWnd->GetDlgCtrlD实现……
pStatic2->Create(_T("231221"),WS_CHILD
[其他解释]
pWnd->SetTextColor(RGB(255,0,0));
或用
pDC->SetTextColor(RGB(255,0,0));
[其他解释]
[其他解释]
WS_VISIBLE,CRect(150,150,200,200),this,ID_CUSTOM_CBUTTON);
[其他解释]
pdc=pWnd->GetDC();
pdc.SetTextColor
[其他解释]
正解!!!!!原来我也怀疑是这样,后来直接复制文本框属性的ID栏过去,还是不行。可改成IDC_STATIC_1就行了!!不懂原理,等大神解答……
[其他解释]
这个不懂…………楼下解决了…………谢谢