· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Исчезает картинка.

Посл.отвђт Сообщенiе


Дата: Окт 23, 2004 21:51:34

Процедура диалогового окна при инициализации субклассирует дочерний элемент типа Static.
.init:
invoke LoadImage,0,szFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE
mov [hBmp],eax
invoke GetDlgItem,[hwnd],208
mov [hStat],eax
invoke SetWindowLong,[hStat],GWL_WNDPROC,CallBack
mov [oldHWND],eax
jmp .ext
В новой процедуре Static-а реакция только на сообщение WM_PAINT
proc CallBack,hwnd,wmsg,wparam,lparam
enter
push ebx esi edi
invoke CallWindowProc,[oldHWND],[wmsg],[wparam],[lparam]
cmp [wmsg],WM_PAINT
je .paint
jmp .ext
.paint:
invoke BeginPaint,[hwnd],ps
invoke CreateCompatibleDC,[ps.hdc]
mov [cmDC],eax
invoke SelectObject,[cmDC],[hBmp]
invoke BitBlt,[ps.hdc],1,1,200,200,[cmDC],1,1,SRCCOPY
invoke EndPaint,[hwnd],ps
jmp .ext
.ext:
;xor eax,eax
pop edi esi ebx
return
Рисунок вначале отрисовывается, но через некоторое время пропадает, например после активации

другого окна. Подскажите почему?


Дата: Окт 24, 2004 01:24:54

Попробуй ещё обрабатывать WM_ERASEBKGND, оно приходит в том числе и при деактивации твоего окна


Дата: Окт 24, 2004 08:55:51

Всем спасибо. Если интересно ошибка была в том, что я не удалял созданный совместимый контекст.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.123