調用CDC:: SetBkmode並傳送OPAQUE用當前的背景顏色填充背景,或者調用CDC::SetBkMode並傳送TRANSPAARENT使背景保持不變,這兩種方法都可以設置背景模式。下例設置背景模式為TRANSPARENT,可以兩次更新串,用花色帶黑陰影更新文本。黑色
串在紅色串之後,但由於設置了背景模式仍然可見。
void CSampleVIEw::OnDraw(CDC *pDC)
{
//Determint size of vIEw.
CRect rcVIEw;
GetClientRect(rcVIEew);
//Create sample string to display.
CString str(_T("Awesome Shadow Text..."));
//Set the background mode to transparent.
pDC->SetBKMode(TRANSPARENT);
//Draw black shadow text.
rcVIEw.OffsetRect(1, 1);
pDc->SetTextColor(RGB(0, 0, 0));
pDC->DrawText(str, str.GetLength(), rcVIEw,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
//Draw red text.
rcVIEw.OffsetRect( - 1, - 1);
pDc->SetTextColor(RGB(255, 0, 0));
pDC->DrawText(str, str.GetLength(), rcVIEw,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}