Dunque basilarmente le parti sono queste
codice:
Menu = LoadMenu(hInstance,MAKEINTRESOURCE(ID_MENU));
fakedialog = CreateDialogParam(hInstance,MAKEINTRESOURCE(FAKE_DIALOG),GetDesktopWindow(),DialogProc,NULL);
Se metto NULL come parentwindow fakedialog = NULL. Non sapendo come fare, ho messo il primo HWND che mi è venuto in mente.
codice:
memset(&ref,0,sizeof(ref));
ref.cbSize = sizeof(NOTIFYICONDATA);
ref.uID = 10182;
ref.uFlags = NIF_ICON|NIF_INFO|NIF_ICON|NIF_MESSAGE;
ref.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
ref.dwInfoFlags = NIIF_ERROR;
ref.hWnd = fakedialog;
ref.uVersion = NOTIFYICON_VERSION;
ref.uCallbackMessage = WM_USER + 1100;
strcpy_s(ref.szInfo,"Errore!");
strcpy_s(ref.szInfoTitle,"errore");
strcpy_s(ref.szTip,"errore");
Ed ecco la DialogProc che mai arriva ad eseguire le istruzioni.
codice:
INT_PTR CALLBACK DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_USER + 1100)
if (lParam == WM_RBUTTONDOWN)
{
SetForegroundWindow(fakedialog);
TrackPopupMenuEx(Menu,TPM_RIGHTALIGN,100,100,fakedialog,NULL);
}
return 0;
}