Fenster soll, wenn es minimiert wird in den infoberich geschoben werden, wie?
-
hallo,
ich wollte wissen wie ich mein anwendungs symbol in den infobereich schiebe nach ausblendung des fenster? also neben die windoof-uhr. und müsste ich die anwendung noch mal extra aus der taskl. nemmen?Gruß Tobi
-
Suchen...
Guck dir mal das an:
- http://www.c-plusplus.net/forum/viewtopic-var-t-is-172731-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-%2Asystray%2A-and-start-is-10.html
- http://www.softgames.de/forum/viewtopic.php?t=77655&postdays=0&postorder=asc&start=0
- http://www.winapi.net/index.php?inhalt=s16
MFG
Ace
-
danke.
doc hab da irgendwie noch nen problem, und zwar das die exe_symb das icon als form bekommt, hab doch eigentlich alles richtig gemacht oder?
Hier der quelltext:die header_datei:
#ifndef CURSOR_H #define CURSOR_H //////////////////////////////////////////////////////////////////////////////// // Icon #define ID_ICON01 10000 #endifdann in der .rc_datei:
#include "CursorHere.h" ID_ICON01 ICON DISCARDABLE "Icons/CursorHere.ico"und in der main .cpp_datei:
WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { [...]aber trotzdem bleibt das exe sybol als normales api_symbol
wieso???
wc.hIcon = LoadIcon( hInstance, MAKEINTRESOURCE( ID_ICON01 ) );[...]
-
Mach bitte erstmal deine Hausaufgaben. Wir haben deinen Quellcode nicht, ihn debuggen musst du schon machen:
LoadIcon
Return Value
If the function succeeds, the return value is a handle to the newly loaded icon.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
-
hm? wieso.. .erlässt sich compiliern... das icon oben im fenster wird ja ersetzt nur die exe net...
-
Hmm, was verstehst du unter exe symbol ?
-
naja von der anwendung des symbol.... also das, welches auf dem Desktop liegt wo man so draufklicken muss weist du
das mein ich...
-
also ich habe folgendes getan:
static NOTIFYICONDATA idata; idata.cbSize = sizeof( idata ); idata.hWnd = hWnd; idata.hIcon = LoadIcon( 0, MAKEINTRESOURCE( ID_ICON01 ) ); idata.uID = ID_ICON01; idata.uFlags = NIF_ICON;und in WM_COMMAND --> ID_BUTTON03 --> BN_CLICKED:
Shell_NotifyIcon( NIM_ADD, &idata );
ShowWindow( hWnd, SW_HIDE );doch erscheint untn im infobereich nur eine lücke doch nicht das icon... wieso denn nicht?
-
Hier probier mal den Code, ist zwar schon ziemlich lange her, dass ich den geschrieben habe, aber sollte funktionieren:
/* Nachricht, die nach einem Klick auf das Programmicon in der Taskleiste gesendet wird */ #ifndef WM_ICONCLICK #define WM_ICONCLICK (WM_APP+0) #endif bool ShowAppInTrayBar(HWND hReferencedWnd, bool fShowIcon, const PTCHAR* pszDisplayedTooltip, HICON hiIconInTray, int iCommandID) { if(!IsWindow(hReferencedWnd)) return (false); NOTIFYICONDATA tsym; ZeroMemory(&tsym, sizeof(NOTIFYICONDATA)); // ....Icon anzeigen/erstellen.... if(fShowIcon) { tsym.cbSize = sizeof(NOTIFYICONDATA); tsym.hWnd = hReferencedWnd; tsym.uID = iCommandID; tsym.uFlags = NIF_MESSAGE; tsym.uCallbackMessage = WM_ICONCLICK; tsym.hIcon = hiIconInTray; if(pszDisplayedTooltip != NULL) { const unsigned int SZ_TIP_SIZE = sizeof(tsym.szTip) / sizeof(tsym.szTip[0]); StrCpyN(tsym.szTip, pszDisplayedTooltip, (lstrlen(pszDisplayedTooltip)) >= SZ_TIP_SIZE ? SZ_TIP_SIZE : lstrlen(pszDisplayedTooltip)); tsym.szTip[SZ_TIP_SIZE - 1] = 0; tsym.uFlags |= NIF_TIP; } if(hiIconInTray != NULL) tsym.uFlags |= NIF_ICON; // ....Nachricht senden.... if(!Shell_NotifyIcon(NIM_ADD, &tsym)) return (false); } // ....Icon verstecken/löschen.... else { // ....Strcut initialisieren.... tsym.cbSize = sizeof(NOTIFYICONDATA); tsym.hWnd = hReferencedWnd; tsym.uID = iCommandID; tsym.uFlags = 0; // ....Nachricht senden.... if(!Shell_NotifyIcon(NIM_DELETE, &tsym)) return (false); } return (true); }
-
jo passt schon abs allein geschaft... nur noch nen paar fragen....
wie darf ich das verstehen:
#define WM_ICONCLICK (WM_APP+0)was macht das????
und muss ich mein icon unbedingt so laden, damit es mir angezeigt wird?
hIcon = LoadImage( ((LPCREATESTRUCT)lParam)->hInstance,
MAKEINTRESOURCE(ID_ICON01), IMAGE_ICON, 0, 0, LR_SHARED );wieso muss ich beim loeschen des tryicons des noch mal so schreiben?
// ....Strcut initialisieren....
tsym.cbSize = sizeof(NOTIFYICONDATA);
tsym.hWnd = hReferencedWnd;
tsym.uID = iCommandID;
tsym.uFlags = 0;schon mal danke fuers aufklären

Gruß Tobi