Создай контекст в памяти. Типа виртуальное окно. Код (Text): CreateVWin proc hWin:DWORD LOCAL RectGraf:RECT LOCAL hDC:DWORD,hMemDC:DWORD ; LOCAL hWinGraf:DWORD ; invoke GetWindowRect,hWin,ADDR RectGraf invoke GetClientRect,hWin,ADDR RectGraf mov eax,RectGraf.bottom sub eax,RectGraf.top mov Y_VWin,eax ;Размер по Y создаваемого виртуального окна mov eax,RectGraf.right sub eax,RectGraf.left mov X_VWin,eax ;Размер по X создаваемого виртуального окна invoke GetDC,hWin mov hDC,eax invoke CreateCompatibleDC,eax mov hMemDC,eax invoke CreateCompatibleBitmap,hDC,X_VWin,Y_VWin invoke SelectObject, hMemDC,eax invoke GetStockObject, WHITE_BRUSH; invoke SelectObject, hMemDC,eax invoke PatBlt, hMemDC,0,0,X_VWin,Y_VWin,PATCOPY invoke ReleaseDC,hWin,hDC mov eax,hMemDC ret CreateVWin endp Рисуешь в него и выводишь на нормальное окно. Код (Text): PrintGraf proc LOCAL TMP_Y:DWORD inc CNT_X mov eax, CNT_X .if eax==X_VWin mov CNT_X, 0 invoke CLR_Graf .endif mov eax, 255 sub al,ControllerParam.C_CurParam invoke MulDiv,Y_VWin,eax,256 mov TMP_Y,eax invoke SetPixelV,V_WinDC,CNT_X,eax,008952ADh invoke GetDC, hVWin push eax invoke BitBlt,eax,0,0,X_VWin,Y_VWin,V_WinDC,0,0,SRCCOPY pop eax invoke ReleaseDC,hVWin,eax ret PrintGraf endp Да и еще в WM_PAINT вставляем повтор вывода на реальное окно, вдруг кто-то затрет что-то. Код (Text): .elseif eax==WM_PAINT invoke BeginPaint,hWnd,ADDR ps invoke EndPaint,hWnd,ADDR ps invoke BeginPaint,hVWin,ADDR ps invoke BitBlt,eax,0,0,X_VWin,Y_VWin,V_WinDC,0,0,SRCCOPY invoke EndPaint,hVWin,ADDR ps Это просто куски кода с моего проекта, что бы меньше объяснять.
Great >Когда окно затирается другим, А потом снова появляется [...] винда [...] посылает WM_PAINT [...] На всякий случай: в данном топике окно - WS_EX_LAYERED, т.е. другим оно не затирается никогда, и винда соответствующего WM_PAINT не посылает.
mc black А затем, что рисовать в такое окно можно когда угодно и что угодно и выводить когда нужно. Ну тогда юзай UpdateLayeredWindow вместо UpdateWindow.
Не-а. У UpdateLayeredWindow назначение совсем другое. Разве что мне захочется измениь параметры прозрачности и colorkey. У себя же мне просто надо было перерисовать календарик на месяц вперед/назад, что я и сделал. То, что в такое окно можно когда угодно и что угодно и выводить когда нужно, учту на будущее Thanks!