Привет ALL.
Подскажите, как можно оптимизировать вывод в bmp файла на весь экран.
Делаю следующие: в WM_CREATE создаю статик, стиль WS_CHILD | WS_VISIBLE | SS_BITMAP, загружаю в переменную через LoadImage bmp файл и функцией SendMessage отправляю его в статик. В момент появления формы происходит мерцание, как можно его победить. Буду рад любой информации.
До новых встреч.
... << RSDN@Home 1.0 beta 6a >>
22.02.03 12:49: Перенесено модератором из 'C/C++' — ПК
Здравствуйте, lozh, Вы писали:
L>Привет ALL.
L>Подскажите, как можно оптимизировать вывод в bmp файла на весь экран.
L>Делаю следующие: в WM_CREATE создаю статик, стиль WS_CHILD | WS_VISIBLE | SS_BITMAP, загружаю в переменную через LoadImage bmp файл и функцией SendMessage отправляю его в статик. В момент появления формы происходит мерцание, как можно его победить. Буду рад любой информации.
L>До новых встреч.
L>
Через статик не советую — много лишнего он обрабатывет.
Лучше сделай свой оконный класс и мучай его:
В ините:
WNDCLASSEX wceMy =
{
sizeof (WNDCLASSEX),
CS_HREDRAW | CS_VREDRAW,
MySuperClassProc, // описание - далее
0, 0,
hInstance,
(HICON) NULL,
(HCURSOR) LoadCursor (NULL, IDC_ARROW)
(HBRUSH) NULL, // Нафиг бакграунд - мы сами его рисуем
(CTSTR) NULL,
"MySuperClass"
NULL
};
if (!RegisterClassEx (&wceMy))
return (init_fail);
Создаешь окно через CreateWindow (CreateWindowEx)...
Описание процы класса:
LRESULT CALLBACK
MySuperClassProc
( HWND hWnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam)
{
switch (uMsg) {
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDCTo = BeginPaint (hWnd, &ps);
HDC hDCTemp = CreateCompatibleDC (hDCTo);
int saveDC = SaveDC (hDCTemp);
SelectObject (hDCTemp, hbmpByBitmapToDraw);
BitBlt
( hDCTo
, 0, 0, 320, 240 // Или твой ширина/ высота... Можешь юзать [msdn]GetClientRect[/msdn]
, hDCTemp
, 0, 0
, SRCCOPY);
RestoreDC (hDCTemp, saveDC);
DestroyDC (hDCTemp);
EndPaint (hWnd, &ps);
}
return 0; break;
default:
break;
}
return DefWindowProc (hWnd, uMsg, wParam, lParam);
}
Базово — где то так...
Если надо подробней — не разводи флейм, спрашивай через мыло....