Wie erstelle ich ein Willkommen in einen Windows-Fenster??
-
Hi C++-Freunde!!
Mich würde gerne interessieren, wie man ein Windows-Fenster erstellen kann.
Aber nicht in Visual C++, sondern in einen ANSI C++-Compiler. Wie zum Beispiel
Bloodshed Dev-C++.
-
Nachtfalke 2002 schrieb:
Hi C++-Freunde!!
Mich würde gerne interessieren, wie man ein Windows-Fenster erstellen kann.
Aber nicht in Visual C++, sondern in einen ANSI C++-Compiler. Wie zum Beispiel
Bloodshed Dev-C++.In ANSI-C++ machst das dann so:
#include <iostream> int main() { std::cout << "jetzt machen wir ein Windows Fenster auf..." << std::endl; system("cmd"); return 0; }
Für alles andere benötigst du eine API die nicht in ANSI-C++ enthalten ist. Zum Beispiel MFC, WinAPI, GTK, Qt, etc.
-
@Descartes:
seit wann ist denn "cmd" ISO C++?@Nachtfalke:
Stanard C++ kennt keine Fenster, Threads, Sockets,... das alles ist Plattformabhaengig - du musst also die Funktionen deines Betriebssystems dafuer verwenden. Unter Windows eben die WinAPI oder MFC, VCl, wxWindows,...
-
@Shade Of Mine:
Hier hab ich ein Quellcode zu Erstellung einer Blanko Windows-Fenster.
Aber wie kann ich es so ändern, damit ich draus ein Willkommen machen
kann??#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); }
-
Hier bist Du völlig verkehrt. Du bist in den Tempel des C++-ISO-Standards geraten.
Bezüglich Fenster siehe hier:
http://www.henkessoft.de/api1.htm
Da wirst Du fündig.
Das geht alles mit dem Dev-C++ .