Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Ein paar Fragen zur Win32-api

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
13.09.2003, 16:01 Uhr
niels_ole_salscheider



Hallo,
ich habe 3 Fragen zur WIN32-API:

1.: Wie kann man erreichen, dass nur 1 Instanz möglich ist? Ich hab schon das ausprobiert, aber das funktioniert nicht:

C++:
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
if (hPrevInstance == NULL)
{
//...
}
}



2.: Wie kann man Bilder auf Buttons (Außer per BS_OWNERDRAW) darstellen, oder geht das nicht?

3.: Wie kann man ein Fenster zeitweise unsichtbar machen (so, dass man es auch nicht mehr in der Taskleiste sieht)? Ich hab schon
C++:
ShowWindow (hwnd, SW_HIDE);
versucht, aber dann wird das Fenster nur minimiert...

Danke

Ole

Dieser Post wurde am 13.09.2003 um 16:12 Uhr von niels_ole_salscheider editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.09.2003, 16:12 Uhr
niels_ole_salscheider



Punkt 3 hat sich erledigt; DefWindowProc hat das Fenster nach dem Verstecken in den minimierten Zustand versetzt... Man darf dann die Nachricht für das Minimieren nicht weitergeben...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.09.2003, 18:18 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


normalerweise sollte mit SW_HIDE das fenster minimieren und verschwinden?!?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.09.2003, 19:07 Uhr
niels_ole_salscheider



Nein, ich wollte das Fenster als Reaktion auf den Minimieren-Button verschwinden lassen und ein Symbol im Info-Bereich erscheinen lassen und hab dazu folgendes verwendet:


C++:
case WM_SYSCOMMAND: //Symbol im Systray und Fenster verbergen:
         if (wParam == SC_MINIMIZE)
         {
         NOTIFYICONDATA icndata;
         icndata.cbSize = sizeof(NOTIFYICONDATA);
         icndata.hWnd = hwnd;
         icndata.uID = 1;
         icndata.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
         icndata.uCallbackMessage = WM_ICONCLICK;
         icndata.hIcon = LoadIcon ((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICON1)) ;
         lstrcpy(icndata.szTip, szAppName);

         Shell_NotifyIcon(NIM_ADD, &icndata);
         ShowWindow (hwnd, SW_HIDE);
         }

         break;



Aber es muss noch verhindert werden, dass das an DefWindowProc übergeben wird und von daher hab ich jetzt eine Bedingung gemacht:

C++:
if (!noreturn)
         return DefWindowProc (hwnd, message, wParam, lParam) ;


und in die Bedingung if (wParam == SC_MINIMIZE) noch den Befehl noreturn = true; eingefügt...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.09.2003, 22:30 Uhr
niels_ole_salscheider



Ich hab' noch eine Frage:
Ich habe gehört, dass man möglichst nicht die Win-Registry zum Abspeichern von Einstellungen verwenden soll, sondern statt dessen XML-Dateien.
Deshalb wollte ich fragen, ob es fertige Funktionen zum Abspeichern und Auslesen von Werten einer XML-Datei in C/C++ gibt.

Danke

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.09.2003, 22:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wieso benutzt du extra noch eine Variable?
mach halt einfach nach dem


C++:
   ShowWindow (hwnd, SW_HIDE);



ein


C++:
  return 0;



So kannste dir dann die Variable sparen.

Für XML-Funktionen schau am besten unter www.codeguru.com
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.09.2003, 23:52 Uhr
niels_ole_salscheider



Hab' das jetzt mit dem return 0; gemacht und es kalppt; danke!
Aber gute Informationen über das XML hab' ich leider noch nicht gefunden...

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.09.2003, 16:58 Uhr
Tommix



Hallo,
zu 1. siehe FAQ.

Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
14.09.2003, 17:50 Uhr
niels_ole_salscheider



Danke; wie muss der Befehl AfxEnableControlContainer(); in einer API-Anwendung heißen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
14.09.2003, 17:57 Uhr
niels_ole_salscheider



Ich brauche das AfxEnableControlContainer(); gar nicht, oder?

Naja, falls das so ist, wären damit die Punkte 1 und 3 erledigt; bleiben nur noch Punkt 2 und die XML-Datei...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: