[Winapi] "Balonowe" komunikaty w tray
Ostatnio zmodyfikowano 2016-10-26 12:14
pawo1 Temat założony przez niniejszego użytkownika |
[Winapi] "Balonowe" komunikaty w tray » 2016-10-25 14:38:50 Witam. Korzystając z tego kursu http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Kontrolki/Obszar-statusu-Tray/208. Chciałem dodać do swojego programu tak zwane balonowe komunikaty. O ile samo wyświetlenie ikony w tray u mnie działa o tyle próba kompilacji programu z komunikatami powoduje u mnie takie errory: error: 'struct NOTIFYICONDATA' has no member named 'dwInfoFlags' także dla 'szInfo' i 'szInfoTitle'. Zdefiniowałem wersję IE tak jak było to opisane w kursie. Korzystam z Code::Blocks w wersji 10.05 Z góry dziękuję za odpowiedź Pawo1 |
|
pawo1 Temat założony przez niniejszego użytkownika |
» 2016-10-25 16:40:22 Można powiedzieć, że rozwiązałem problem edytując strukturę NOTIFYICONDATA w shellapi.h zamiast: typedef struct _NOTIFYICONDATAA { DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; HICON hIcon; #if _WIN32_IE >= 0x0500 CHAR szTip[ 128 ]; DWORD dwState; DWORD dwStateMask; CHAR szInfo[ 256 ]; _ANONYMOUS_UNION union { UINT uTimeout; UINT uVersion; } DUMMYUNIONNAME; CHAR szInfoTitle[ 64 ]; DWORD dwInfoFlags; #else CHAR szTip[ 64 ]; #endif #if _WIN32_IE >= 0x600 GUID guidItem; #endif #if _WIN32_WINNT >= 0x600 HICON hBalloonIcon; #endif } NOTIFYICONDATAA, * PNOTIFYICONDATAA; dałem: typedef struct _NOTIFYICONDATA { DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; HICON hIcon; TCHAR szTip[ 64 ]; DWORD dwState; DWORD dwStateMask; TCHAR szInfo[ 256 ]; union { UINT uTimeout; UINT uVersion; }; TCHAR szInfoTitle[ 64 ]; DWORD dwInfoFlags; GUID guidItem; HICON hBalloonIcon; } NOTIFYICONDATA, * PNOTIFYICONDATA;
Nie wiem czy ten sposób jest dobry, ale na chwilę obecną działa. Mam nadzieję, że komuś się przyda. Jeżeli ktoś ma lepszy pomysł lub wie o jakiśch wadach tego sposobu, będę wdzięczny za rady. |
|
killjoy |
» 2016-10-25 18:42:26 Tak się nie robi, mogą z tego jakieś cuda-niewidy wyjść. Tym bardziej, że ta struktura ma te pola, z tym, że należy zdefiniować _WIN32_IE jako większe niż 0x0500 . Czyli sprowadza się to do dodania np. #define _WIN32_IE 0x0501 . Przed #include z nagłówkiem. |
|
pawo1 Temat założony przez niniejszego użytkownika |
» 2016-10-26 12:14:27 I wszystko jasne :p nie zwróciłem uwagi, że robiłem definicję, ale po #include. Przywróciłem starą strukturę oraz dałem definicję teraz już przed nagłówkami. Wszystko działa dzięki ;) |
|
« 1 » |