Проблема с получением контекста устройства (HDC) окна наложения в C++.C++

Программы на C++. Форум разработчиков
Anonymous
Проблема с получением контекста устройства (HDC) окна наложения в C++.

Сообщение Anonymous »

Я разрабатываю приложение на C++, которое использует окно наложения для отображения визуальной информации на экране во время работы другого программного обеспечения. Однако у меня возникает постоянная проблема при попытке получить контекст устройства (HDC) окна наложения с помощью функции GetDC(hwndOverlay). Поначалу кажется, что код работает правильно, но через некоторое время GetDC начинает неоднократно давать сбой, что приводит к бесконечному циклу воссоздания окна наложения.
У меня есть реализован механизм закрытия и воссоздания окна наложения при сбое GetDC, но, похоже, это не решает основную проблему. Я проверил, что окно наложения создается правильно и что другие процессы или потоки не обращаются к HDC. Кроме того, я добавил отладочные сообщения для определения конкретного кода ошибки (GetLastError()), но они не дают никаких сведений о причине проблемы.
Вот соответствующий код. фрагмент:

Код: Выделить всё

HMODULE hModuleGlobal;
DWORD overlayThreadId;
HANDLE overlayThreadHandle;
uintptr_t mainModule = NULL;
bool visuals = false;
HWND hwndOverlay;

void DoMagic() {
if (GetAsyncKeyState(VK_F1) & 1)
{
visuals = !visuals;
PrintConsoleInfo();
}

if (hwndOverlay) {
HDC hdcOverlay = GetDC(hwndOverlay);
if (hdcOverlay == NULL) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78352842/issue-with-obtaining-device-context-hdc-of-overlay-window-in-c[/url]

Вернуться в «C++»