000
25.08.2003, 16:22 Uhr
Nachtfalke
|
Hi C++-Freunde!!
Ich hab es geschafft, ein leeres Windows-Fenster in C++ zu schreiben. Aber ich bin mit dem Quelltext nicht ganz fertig, denn es fehlt noch ein Label.
Wie füge ich ein Label in das Windows-Fenster hinzu? Gibt es in der Headerdatei "Windows.h" ein Objekt oder Schlüsselwort mit dem man ein Label schreiben und formatieren kann, wie z.B. für Schriftgröße oder Schriftart?? Wenn ja, könnt Ihr sie mir nennen?
Quelltext für ein leeres Windows-Fenster:
C++: |
#include <windows.h> // Headerdatei der Windows-API
// Prototypen LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
// Hauptfunktion int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wndclass; // Fensterklasse wndclass HWND hWnd; // Handle auf Fenster MSG msg; // Windows-Nachricht
// Um ein Fenster zu erzeugen müssen wir zunächst einen // neuen Fenstertyp definieren. Dazu legen wir mit Hilfe // der Struktur WNDCLASSEX zunächst alle Eigenschaften // des neuen Fensters fest
wndclass.cbSize = sizeof(WNDCLASSEX); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH) COLOR_WINDOW; wndclass.lpszMenuName = NULL; wndclass.lpszClassName = "FirstWin"; wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
// Mit der Funktion RegisterClassEx übergeben wir die // Struktur nun an Windows (Fensterklasse registrieren)
RegisterClassEx(&wndclass);
// Mit einem Aufruf von CreateWindowEx erzeugen wir ein // neues Fenster unserer soeben registrierten Fensterklasse // CreateWindoeEx gibt einen Handle (Zugriffsnummer zur // Identifizierung) auf unser Fenster zurück
hWnd = CreateWindowEx( WS_EX_CLIENTEDGE, "FirstWin", "Unser erstes Fenster", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow); // Fenster anzeigen UpdateWindow(hWnd); // und neuzeichnen
// Windows-Programme reagieren auf Nachrichten, die // Windows sendet. Neben dem anlegen der Fenster hat // eine WinMain-Funktion eigentlich nur die Aufgabe, // diese Nachrichten bei Windows abzufrufen und an // die Fenster zu verteilen
while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
return msg.wParam; }
// WndProc ist die Nachrichtenbehandlungsroutine unseres // Fenstertyps "FirstWin". Für das Aufrufen dieser Funktion // ist Windows verantwortlich!
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { // In unserem ersten Programm interessiert uns nur die // Nachricht WM_DESTROY, die gesendet wird wenn das // Fenster geschlossen wurde
switch(message) { case WM_DESTROY: PostQuitMessage(0); // Programm beenden return 0; }
return DefWindowProc(hWnd, message, wParam, lParam); }
|
Dieser Post wurde am 25.08.2003 um 16:25 Uhr von Nachtfalke editiert. |