OnPaint вызывается при обновлении окна, а OnDrawItem пользовательское рисование дочернего окна. ну например кнопки. закинь на форму кнопку с индификатором IDC_BUTTON1 в свойствах кнопки поставь Owner Draw -> True, а в сообщениях диалога добавь обработчик OnDrawItem и закинь туда вот такой код:
Код | void CrDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: добавьте свой код обработчика сообщений или вызов стандартного
if(nIDCtl == IDC_BUTTON1) { CDC dc; dc.Attach(lpDrawItemStruct->hDC); COLORREF color; if(lpDrawItemStruct->itemState &1) color = RGB(230,0,0); else color = RGB(0,200,0); CBrush br(color); dc.SelectObject(&br); dc.SetBkMode(TRANSPARENT); dc.SetTextColor(GetSysColor(COLOR_WINDOWTEXT)); CRect rect = lpDrawItemStruct->rcItem; dc.Ellipse(rect); CString text; GetDlgItem(nIDCtl)->GetWindowText(text); dc.DrawText(text, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); dc.Detach(); }
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct); }
|
|