Transparent Popup Menu
-
Wie kann man ein Popup Menu Transparent machen?
Ich habe bereits folgenden Codebool TrackPopupMenu(CWnd* pWnd, UINT nIDResource, UINT nFlags=TPM_LEFTALIGN|TPM_RIGHTBUTTON) { CPoint CurPos; CMenu* MMnu = new CMenu(); if(!MMnu->LoadMenu(nIDResource)) return false; GetCursorPos(&CurPos); MMnu->GetSubMenu(0)->TrackPopupMenu(nFlags, CurPos.x, CurPos.y, pWnd); MMnu->DestroyMenu(); delete MMnu; return true; } BOOL MakeWindowTransparent(HWND hWnd, int value=255) { if(value > 255) value = 255; if(value < 0) value = 0; typedef DWORD (WINAPI *PSLWA)(HWND, DWORD, BYTE, DWORD); static PSLWA pSetLayeredWindowAttributes = NULL; static BOOL initialized = FALSE; #define WS_EX_LAYERED 0x00080000 #define LWA_COLORKEY 0x00000001 #define LWA_ALPHA 0x00000002 HMODULE hDLL = LoadLibrary ("user32"); pSetLayeredWindowAttributes = (PSLWA) GetProcAddress(hDLL, "SetLayeredWindowAttributes"); if(pSetLayeredWindowAttributes == NULL) return FALSE; SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED); if(GetLastError()) return FALSE; int result = pSetLayeredWindowAttributes (hWnd, RGB(200, 200, 200), (int)(value), LWA_ALPHA); return result; }
-
Gar nicht.
-
denke das könnte dir weiterhelfen
http://www.codeproject.com/menu/trans_menu.asp
-
willst du damit benutzer deiner anwendung ärgern oder was?