Combobox und TrayIcon = Problem



  • Hallo

    Ich habe in meinem Projekt ein Trayicon und eine Combobox. Doch wenn ich nun auf das trayicon klicke oder darüberfahre, dann geht die Combobox ständig auf und zu:
    Video

    #include <windows.h>
    #include <shellapi.h>
    
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    HINSTANCE hInstanceGlobal ; 
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       PSTR szCmdLine, int iCmdShow)
    {
    
    	hInstanceGlobal = hInstance ;
       //CreatWindow usw..
    
       ShowWindow(hWnd, iCmdShow);
       UpdateWindow(hWnd);
    
       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
       return msg.wParam;
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch (message)
       {
    	   case WM_CREATE:
            {
    			//Traybaricon
    			nidTrayIcon.cbSize = sizeof(nidTrayIcon); 
    			nidTrayIcon.hIcon = LoadIcon(hInstanceGlobal,MAKEINTRESOURCE(IDI_ICON1)); //Exemplarisch 
    			nidTrayIcon.hWnd = hWnd; //Exemplarisch, HWND des Fensters an dessen MessageLoop die Nachricht geschickt werden soll 
    			nidTrayIcon.uCallbackMessage = (WM_USER + 1); //Exemplarisch 
    			nidTrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //Exemplarisch 
    			nidTrayIcon.uID = 0x0200; //Exemplarisch 
    			lstrcpyn(nidTrayIcon.szTip,L"Bibel-Box",sizeof(nidTrayIcon.szTip));
    			Shell_NotifyIcon(NIM_ADD, &nidTrayIcon);
    
    			//COMBOBOX
    			combobox = CreateWindowEx(WS_EX_CLIENTEDGE,
                                       L"COMBOBOX",
                                       NULL,    // <- das ist der Inhalt der Editfelds
                                       CBS_DISABLENOSCROLL | CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE,
                                       0, 0, 0, 0,
                                       hWnd,
                                       NULL,
                                       ((LPCREATESTRUCT) lParam) -> hInstance,
                                       NULL);
    			return 0;
    		}
    		case (WM_USER + 1): 
            { 
             switch(lParam) 
             { 
    
    		case WM_RBUTTONUP: 
                { 
    				HMENU hMenu;
    	            HMENU hSubMenu;
    				hMenu = LoadMenu(hInstanceGlobal, MAKEINTRESOURCE(IDR_MENU1)); 
                    hSubMenu = GetSubMenu(hMenu, 0); 
    
                    SetForegroundWindow(hWnd); 
                    GetCursorPos(&pt);    
                    TrackPopupMenu(hSubMenu, TPM_RIGHTBUTTON, pt.x, 
                                    pt.y, 0, hWnd, NULL); 
                    PostMessage(hWnd, WM_NULL, 0, 0); 
                    DestroyMenu(hMenu); 
                    DestroyMenu(hSubMenu); 
    				return 0;
                } 
    
    			}
             } 
    		case WM_COMMAND:
          {
    		  switch(LOWORD(wParam))
                   {
    			case ID_INFO_BEENDEN :
    				{
    					return 0;
    				}
    			case ID_INFO_MINIMIEREN:
    				{
    					return 0;
    				}
    			case ID_INFO_MAXIMIEREN:
    				{
    					return 0;
    
    				}
    
    			}
    	  }
    	}
    	return DefWindowProc(hWnd, message, wParam, lParam);
    }
    

    Ich hoffe ihr könnt mir helfen

    MFG Tim



  • Ok hat sich geklärt...es hat einfach nur ein return 0; gefehlt...


Anmelden zum Antworten