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...