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]
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?
Babybaer Geschrieben 7. Juli 2005 Autor Geschrieben 7. Juli 2005 Release nur aus dem Studio richtig. Debug immer richtig.
Klotzkopp Geschrieben 7. Juli 2005 Geschrieben 7. Juli 2005 Hast du die Anmerkungen zu GetModuleHandle in der MSDN Library gelesen? Geht es mit GetModuleHandleEx?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden