MFC随笔2.17
1.MFC类库为提供了CWnd::GetDlgItem函数,可以用它将ID转化成一个CWnd指针,如果需要把CWnd指针转化成一个控件ID,则可以使用MFC中CWnd类的GetDlgCtrlID成员函数
2.如果想显示文本,可以利用对话框编辑器来创建一个具有特殊ID的空的静态控件,然后再在对话框的成员函数中(如OnInitDialog)调用CWnd::SetDlgItemText函数,以便在该控件中显示文本
如果想显示图形的话,此时必须利用ClassWizard往对话框中加入OnPaint成员函数,该函数必须将静态控件的ID转化成CWnd指针,然后再得到它的设备环境。我们可以利用Invalidate/UpdateWindow这一调用序列达到即在控件窗口内绘图,又防止Windows对它进行重复绘制的效果。下面给出了一个OnPaint函数,它可以在一个静态控件中绘制一个小的黑方块。
1 Void CMyDialog::OnPaint() 2 { 3 CWnd* pWnd=GetDlgItem(IDC_STATIC1); 4 CDC* pControlDC=pWnd->GetDC(); 5 pWnd->Invalidate(); 6 pWnd->UpdateWindow(); 7 pControlDC->SelectStockObject(BLACK_BRUSH); 8 pControlDC->Rectangle(0,0,10,10); 9 pWnd->ReleaseDC(pControlDC) 10 }