Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование в STATIC 
V
    Опции темы
GSasha
Дата 25.3.2009, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет.
Для задания области для  рисования в диалоговом окне решил использовать контрол Static Text (IDC_STATIC).
То есть делаю вот так:
Код

void CTestDrawDlg::Draw()
{
    CWnd* drawWnd = GetDlgItem( IDC_DRAW_FRAME ); // IDC_DRAW_FRAME == IDC_STATIC
    RECT rect;
    drawWnd->GetClientRect( &rect );
    CClientDC dc( drawWnd );
    CBrush brush( RGB( 20, 100, 250 ) );
    dc.FillRect( &rect, &brush );
    ReleaseDC( &dc );
}


И вызываю этот метод в OnPaint.
Проблема в том, что область статика заполняется цветом не сразу после появления окна диалога, а только после того, как его передвинуть за границу екрана. 
И часть области может остаться не заполненной цветом. (В общем, если я правильно понял - после моего рисования статик перерисовуется по-стандартной схеме).
Можно в таком случае написать класс унаследованный от CStatic и его научить себя рисовать, но я хотел бы именно так как описал выше.
Подскажите правильный путь!

Добавлено через 3 минуты и 4 секунды
Похоже не в ту ветку написал, перенесите плз. smile 
PM MAIL ICQ   Вверх
GSasha
Дата 26.3.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Решение найдено, нужно после окончания рисования удалить область с региона обновления окна, тоесть
Код

     CWnd* drawWnd = GetDlgItem( IDC_DRAW_FRAME );
     RECT rect;
     drawWnd->GetClientRect( &rect );
     CDC* dc = drawWnd->GetDC();
     CBrush brush( RGB( 20, 100, 250 ) );
     dc->FillRect( &rect, &brush );

     drawWnd->ValidateRect( &rect );
     
     ReleaseDC( dc );

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




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


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

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