你要先得到CStatic的CDC指针pDCStatic,在pDCStatic中画就可以了。
OnPaint()
{
CWnd *pWnd=GetDlgItem(IDC_YOUR_STATIC);
CDC *pDCStatic=pWnd->GetDC();
//draw your rectangle
}
OnPaint()
{
CWnd *pWnd=GetDlgItem(IDC_YOUR_STATIC);
CDC *pDCStatic=pWnd->GetDC();
//draw your rectangle
}
不过从你的意思来看,你已经画出了窗口,这说明你可能已经得到了上面的指针。
因此我有以下建议:
用UpdateWindow,或者(InvalidateRect())对其进行重画!
{
// TODO: Add your specialized code here and/or call the base class
if(message==WM_CTLCOLORSTATIC)
{
HDC hdc;
HWND hWndStatic;
hWndStatic=(HWND)lParam;
hdc=(HDC)wParam;
//开始画吧
…………
}
return CDialog::WindowProc(message, wParam, lParam);
}
我已经生成了该静态文本控件的支持类,但ClassWizard中该静态文本控件的Massage Map中只有点击消息,没有WM_PAINT消息,是不是该手工添加消息映像宏及消息处理函数呢?
OnPaint()
{
CWnd *pWnd=GetDlgItem(IDC_YOUR_STATIC);
CDC *pDCStatic=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
//draw your rectangle
}
绝对ok!