AV при попытке перехода в полноэкранный режим
От: Александр Граф  
Дата: 08.08.10 14:01
Оценка:
Мне нужно реализовать переход в полноэкранный режим из оконного и обратно, но при изменении стиля окна происходит вот что:

Unhandled exception at 0x64865a31 in Milena_C++.exe: 0xC0000005: Access violation reading location 0x00000008.

Всё это останавливается на
TranslateMessage(&msg);
DispatchMessage(&msg);


Причём, сообщение, насколько я выяснил, всегда WM_LBUTTONUP. Я думаю, проблема в том, что изменение стиля окна происходит при нажатии пункта меню (когда я меняю стиль окна из lua-скрипта такого не происходит. логично, сообщения-то не было).

HTMLayout использует уже созданное окно, как показано в примере win32, тоесть
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

    LRESULT lResult;
    BOOL bHandled;
    lResult = HTMLayoutProcND(hWnd, message, wParam, lParam, &bHandled);
    if (bHandled)
        return lResult;

    switch (message)
    ...



Стиль окна я меняю так:

Для полноэкранного
SetWindowLong(winHandle, GWL_STYLE, WS_POPUPWINDOW);
SetWindowLong(winHandle, GWL_EXSTYLE, WS_EX_TOPMOST);
ShowWindow(winHandle, SW_SHOWMAXIMIZED);


Для обычного
SetWindowLong(winHandle, GWL_STYLE, WS_OVERLAPPEDWINDOW);
SetWindowLong(winHandle, GWL_EXSTYLE, 0L);
ShowWindow(winHandle, SW_SHOWNORMAL);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.