Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чём отличие CWnd::OnPaint , CWnd::OnDrawItem, и CWnd::DrawItem ? 
:(
    Опции темы
erslgoeirjh
Дата 10.11.2016, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



В чём отличие CWnd::OnPaint , CWnd::OnDrawItem и CWnd::DrawItem  ?

PM MAIL   Вверх
vol4ek
Дата 14.11.2016, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 1.5.2011
Где: Минск

Репутация: -1
Всего: 0



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);
}

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0974 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.