Babybaer Geschrieben 7. Juli 2005 Geschrieben 7. Juli 2005 Hallo, Ich habe ein Windows das ich Transparent werden lasse. Das funktioniert soweit ganz gut. Leider aber nur solange, solange ich das Programm aus VStudio starte. Die Debug Version tut immer wunderbar. Ich habe auch schon alle Optionen vom Debug auf das Release übernommen. Aber es tut sich nichts. Der Fehler tritt so auf das das Windows gar nicht erst sichtbar wird. Habe ich vielleicht etwas wichtiges vergessen. Ich stehe etwas auf dem Schlauch. So wird es aufgerufen //das hier funktioniert HMODULE hUser32 = GetModuleHandle(TEXT("USER32.DLL")); g_pSetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes) GetProcAddress(hUser32, "SetLayeredWindowAttributes"); //... SetWindowLongPtr(GetSafeHwnd(), GWL_EXSTYLE , GetWindowLongPtr(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED); SetTransparent(GetSafeHwnd(), m_colTrans, 255 * TRANSPARENTPROZENT/100, LWA_COLORKEY | LWA_ALPHA); BOOL CMyWindow::SetTransparent(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags) { BOOL bRet = TRUE; typedef BOOL (WINAPI* lpfnSetTransparent)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); if ( hUser32 ) { lpfnSetTransparent pFnSetTransparent = NULL; if (g_pSetLayeredWindowAttributes ) bRet = g_pSetLayeredWindowAttributes(hWnd, crKey, bAlpha, dwFlags); else bRet = FALSE; } return bRet; } [/PHP] Zitieren
Klotzkopp Geschrieben 7. Juli 2005 Geschrieben 7. Juli 2005 Noch mal zur Klarstellung: Funktioniert es, solange du aus Visual Studio heraus startest, oder funktioniert nur die Debug-Version, egal von wo du die startest? Zitieren
Babybaer Geschrieben 7. Juli 2005 Autor Geschrieben 7. Juli 2005 Release nur aus dem Studio richtig. Debug immer richtig. Zitieren
Klotzkopp Geschrieben 7. Juli 2005 Geschrieben 7. Juli 2005 Hast du die Anmerkungen zu GetModuleHandle in der MSDN Library gelesen? Geht es mit GetModuleHandleEx? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.