Мелькающая тень в углу при создании диалогового окна на Wind
От: Zenden Россия  
Дата: 07.06.25 14:14
Оценка:
Просто создаю диалоговое окно из ресурсов (у него в ресурсах прописаны координаты 700,700):

INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

    DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc, 0);

    return 0;
}


Всё хорошо, но примерно в 1 из 10 запусков в левом верхнем углу экрана (возможно даже немного за границами экрана) на доли секунды прорисовывается тень от моего диалогового окна. Причем это актуально только для winapi-шных диалогов.
Чё это блин такое? На предыдущих версиях Windows такого не было. Приложения для записи экрана это не успевают зафиксировать, я заснял на смартфон:

Отредактировано 07.06.2025 14:17 Zenden . Предыдущая версия .
Re: Мелькающая тень в углу при создании диалогового окна на Wind
От: MTimur  
Дата: 10.06.25 05:46
Оценка:
Здравствуйте, Zenden, Вы писали:

Похоже, что окно создается в точке (0, 0), потом смещается в середину экрана.
Можно попробовать убрать WS_VISIBLE в свойствах диалога, чтобы окно не прорисовывалось сразу после создания. DialogBoxParam сам отобразит окно в нужной позиции после создания.

  Скрытый текст
Z>Просто создаю диалоговое окно из ресурсов (у него в ресурсах прописаны координаты 700,700):

Z>
Z>INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

Z>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
Z>{

Z>    DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc, 0);

Z>    return 0;
Z>}
Z>


Z>Всё хорошо, но примерно в 1 из 10 запусков в левом верхнем углу экрана (возможно даже немного за границами экрана) на доли секунды прорисовывается тень от моего диалогового окна. Причем это актуально только для winapi-шных диалогов.

Z>Чё это блин такое? На предыдущих версиях Windows такого не было. Приложения для записи экрана это не успевают зафиксировать, я заснял на смартфон:

Z>[url=https://i4.imageban.ru/thumbs/2025.06.07/6d7fd24dd798c0d75b57b6f2a7515a45.png]Image: 6d7fd24dd798c0d75b57b6f2a7515a45.png[/url]
Re[2]: Мелькающая тень в углу при создании диалогового окна
От: Zenden Россия  
Дата: 12.06.25 05:37
Оценка:
Здравствуйте, MTimur, Вы писали:

MT>Здравствуйте, Zenden, Вы писали:


MT>Похоже, что окно создается в точке (0, 0), потом смещается в середину экрана.

MT>Можно попробовать убрать WS_VISIBLE в свойствах диалога, чтобы окно не прорисовывалось сразу после создания. DialogBoxParam сам отобразит окно в нужной позиции после создания.

В ресурсах у диалога Visible = False.
Наблюдается только на Windows 11 во многих программах, использующих winapi диалоги. Правда у меня только одна машина имеется с этой версией Windows.
Отредактировано 12.06.2025 5:40 Zenden . Предыдущая версия . Еще …
Отредактировано 12.06.2025 5:38 Zenden . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.