CDC::SetBkColor函数在CView的派生类的OnCreate函数调用不起作用,不知为什么???代码如下:
int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CClientDC dc(this);
//TEXTMETRIC tm;
//dc.GetTextMetrics(&tm);
//CreateSolidCaret(tm.tmAveCharWidth / 8, tm.tmHeight);
dc.SetBkColor(RGB(255, 0, 0));
m_bitmap.LoadBitmap(IDB_MyBitmap);
CreateCaret(&m_bitmap);
ShowCaret();
return 0;
}
就是这句:
dc.SetBkColor(RGB(255, 0, 0));
为什么屏幕背景设置成红色没有反映啊???在线等......
个人解答:
CDC::SetBkColor函数是用来设置屏幕上输出的字体的背景颜色的。示例如下:
void CTextView::OnDraw(CDC* pDC)
{
CTextDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->SetBkColor(RGB(255, 0, 0));
CString str("维新科学技术培训中心");
pDC->TextOut(50, 50, str);
}
效果:字体颜色会变为红色。