L
Ich setze hier ein Post nach den anderen, tut mir leid, aber sonst schaut hier ja keiner rein.
Also ich verstehe dass nicht, iach habe mir http://www.winapi.net/index.php?inhalt=s16 zur hilfe genommen, und leider musste ich feststellen dass dass so nicht geht.
Ich habe bemerkt dass das eine cpp Datei ist.
Ich programmiere in C ist es also überhaupt möglich sowas zu machen?
#define WM_ICONCLICK (WM_APP + 1)
[...]
nid.uCallbackMessage = WM_ICONCLICK;
[...]
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
MessageBox( NULL, "Hier is was", "Nachricht-Benachrichtigung", MB_OK );
switch( message )
{
case WM_ICONCLICK:
switch( lParam )
{
case WM_LBUTTONDOWN:
SysTray_IconOpts( hWnd, 0 );
break;
default:
SysTray_IconOpts( hWnd, 0 );
break;
}
break;
case WM_DESTROY:
SysTray_IconOpts( hWnd, 0 );
PostQuitMessage( 0 );
break;
}
return DefWindowProc( hWnd, message, wParam, lParam );
}
Wenn ich jetzt schreibe
//Das Fenster registrieren, damit uCallbackMessage funktioniert
WNDCLASSEX wndclassex;
//größe der Struktur
wndclassex.cbSize = sizeof(WNDCLASSEX);
wndclassex.style = CS_HREDRAW | CS_VREDRAW;
//Die Prozedure für dass Fenster(hier: überprüfung der Messages)
wndclassex.lpfnWndProc = (WNDPROC)WndProc;
//eventueller zusätzlicher Speicher, den das Programm benötigt
wndclassex.cbClsExtra = 0;
wndclassex.cbWndExtra = 0;
//Handle von der Instanz
wndclassex.hInstance = hInstance;
//Das icon
wndclassex.hIcon = LoadImage( NULL, "C:\\NaDiA\\48.ico", IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR | LR_LOADFROMFILE );
//Der Cursor(Standard)
wndclassex.hCursor = LoadCursor( NULL, IDC_ARROW );
//Hintergrundfarbe
wndclassex.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH );
//Der Menuename(Keines vorhanden)
wndclassex.lpszMenuName = NULL;
//Name des Fensters(egal, da kein Fenster vorhanden [HIDE])
wndclassex.lpszClassName = "tray-class";
//Icon in kleinformat
wndclassex.hIconSm = wndclassex.hIcon;
Wird die MessageBox -beim Start dess Programmes- nicht angezeigt.
//Das Fenster registrieren, damit uCallbackMessage funktioniert
WNDCLASSEX wndclassex;
//größe der Struktur
wndclassex.cbSize = sizeof(WNDCLASSEX);
wndclassex.style = CS_HREDRAW | CS_VREDRAW;
//Die Prozedure für dass Fenster(hier: überprüfung der Messages)
wndclassex.lpfnWndProc = (WNDPROC)WndProc;
//eventueller zusätzlicher Speicher, den das Programm benötigt
wndclassex.cbClsExtra = 0;
wndclassex.cbWndExtra = 0;
//Handle von der Instanz
wndclassex.hInstance = hInstance;
//Das icon
wndclassex.hIcon = LoadImage( NULL, "C:\\NaDiA\\48.ico", IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR | LR_LOADFROMFILE );
//Der Cursor(Standard)
wndclassex.hCursor = LoadCursor( NULL, IDC_ARROW );
//Hintergrundfarbe
wndclassex.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH );
//Der Menuename(Keines vorhanden)
wndclassex.lpszMenuName = NULL;
//Name des Fensters(egal, da kein Fenster vorhanden [HIDE])
wndclassex.lpszClassName = "test"; //<< HIER ist die änderung
//Icon in kleinformat
wndclassex.hIconSm = wndclassex.hIcon;
So werden beim Start ca.. ka 15 MessageBoxen angezeigt.
Bei beiden Varianten kann ich jedoch x000 mal auf den Icon klicken, leider passiert NIE auch nur eine sache....
Wisst ihr wieso? Ich verzweifel gerade ehrlich...
Ich habe ja schon bei winapi.net -wie oben erwähnt- nachgeschaut, und da ist im grunde alles gleich.
Und da soll es angeblich klappen.