Transparent Popup Menu



  • Wie kann man ein Popup Menu Transparent machen?
    Ich habe bereits folgenden Code

    bool 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?


Anmelden zum Antworten