Veröffentlicht 7. Juli 200520 j 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]
7. Juli 200520 j 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?
7. Juli 200520 j Hast du die Anmerkungen zu GetModuleHandle in der MSDN Library gelesen? Geht es mit GetModuleHandleEx?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.