Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (24.01.2007 в 22:19)
Понимаете там... картинка рисуется один раз, после этого, при срабатывании события WM_PAINT, перерисовываются только те участки которые изменились... Грубо говоря тащите вы окно и видите, что наложения других окон нет, размер не изменяется... в этом случае вы ничего не перерисовываете, а если требуется перерисовать - перерисовывайте. WM_PAINT может сотню раз сработать пока окно тащите... попробуйте переместить код отрисовки в события отображения окна WM_SHOWWINDOW и событие изменения его размера WM_SIZE (я тут вызов LoadBitmap() в WinMian() вынес)
switch(iMsg)
{
    case WM_SHOWWINDOW:
    case WM_SIZE:
            hDc = BeginPaint(hWnd, &ps);

DrawBitmap(hDc, bmPicture, 100, 100);
EndPaint(hWnd, &ps);
            return 0;
        case WM_PAINT :
            return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}

В этом случае изображение будет отрисовываться только при отображении окна и при изменени его размера... правда ещё потерю фокуса нужно обработать - иначе перекрытие другими окнами будет затирать окно.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: