|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 9, 2004 20:29:46 у меня есть форма, которая рисуется так (WM_PAINT): invoke CreateCompatibleDC, hDC mov hMemDC,eax invoke SelectObject, hMemDC, hBmp invoke BeginPaint, hWnd, ps invoke StretchBlt,hDC, 0, 0, Width, Height, hMemDC, 0, 0, BmpWidth, BmpHeight, SRCCOPY invoke EndPaint, hWnd, ps invoke DeleteDC, hMemDC WM_ERASEBKGND выглядит так: or eax,1 ret далее нужно, чтобы форма при перетаскивании отображалась, но, если в винде не стоит такая опция, то как известно рисуется рамка окна при перетаскивании и изменении размеров. тогда я добавил в WM_MOVING и в WM_SIZING строку: invoke MoveWindow.... чтобы окно рисовалось. и все вроде бы рулез, рисуется как и надо, но если часть окна вышла за рамки экрана, то начинаются тормоза, т.е. оно (окно) перетаскивается скачками, у знаменитого WinAMP'а этой баги нет. так вот как это реализовать? и как отрисовываются окна, когда ставишь опцию "отображать содержимое окон при перетаскивании"???? вы дочитали до сюда? прочтете может и про конвееры?? |
|
|
Дата: Янв 10, 2004 04:12:37 · Поправил: hGoblin jekyll Сделал так (Фасм, но, думаю, разберешься): wmmoving: mov ebx,[lParam] virtual at ebx moverect RECT end virtual push [moverect.right] push [moverect.bottom] mov eax,[moverect.right] sub eax,[moverect.left] mov [moverect.right],eax mov eax,[moverect.bottom] sub eax,[moverect.top] mov [moverect.bottom],eax invoke MoveWindow,[hWin],[moverect.left],[moverect.top],[moverect.right],[mov erect.bottom],TRUE pop [moverect.bottom] pop [moverect.right] or eax,1 jmp WndProc_finish Все работает. [Сорри, был злой.Отмодерировал] |
|
|
Дата: Янв 14, 2004 13:53:14 так у меня тоже самое, но если окно попадает за границу экрана, то перетаскивание подтормаживает, ладно попробую Cut&Paste, может поможет |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.150 |