Text im Fenster ausgeben
-
Ich hab ein kleines Problem...Ich hab zum Geburtstag das Buch Spieleprogrammieren mit C++ und Genesis3D bekommen...In diesem Buch hab ich das erste mal was mit WinAPI gemacht...leider wird nur erklärt wie man mit Genesis3D 3D-Spiele macht...Nun habe ich mir den einfachen Quellcode für ein Windows-Fenster genommen und wollte in diesem ein Ratespiel zum laufenbringen (So wie in der Konsole)...Ich hab daher erstemal versucht nur einen einfachen Text auszugeben...Nun habe ich an mehreren Stellen des Codes versucht mit std::cout<<"Hallo"; den Text Hallo auszugeben (iostream hab ich includet)...So weit hat mein Compiler auch beim erstellen der EXE keinen Fehler gefunden...Nur jetzt kommt mein Problem: egal wo ich std::cout<<"Hallo"; im Code hin getan habe wurde am Ende kein Hallo im Fenster angezeicht...könnt ihr mir da helfen??? Geht das garnicht mit std::cout<<"Hallo";???
Hier der Quellcode (ohne std::cout<<"Hallo"; und #include <iostream>:
//---------------------------------------------------------- // RatDochMal.cpp: //---------------------------------------------------------- #include "RatDochMal.h" LRESULT CALLBACK WndProc (HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam); int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { //---------------------------------------------------------- //Fensterklasse //---------------------------------------------------------- WNDCLASS Win; MSG msg; //---------------------------------------------------------- //Einstellungen //---------------------------------------------------------- Win.cbClsExtra = 0; Win.cbWndExtra = 0; Win.hInstance = hInstance; Win.hIcon = LoadIcon(hInstance, IDI_APPLICATION); Win.hCursor = LoadCursor(NULL, IDC_ARROW); Win.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); Win.style = CS_HREDRAW | CS_VREDRAW; Win.lpfnWndProc = WndProc; Win.lpszClassName = "???"; Win.lpszMenuName = NULL; RegisterClass (&Win); //---------------------------------------------------------- //Fenster erstellen //---------------------------------------------------------- GHandle = CreateWindow (Win.lpszClassName, "RatDochMal - [Esc]=Ende", WS_TILED, CW_USEDEFAULT, CW_USEDEFAULT, MaxWidth, MaxHeight, NULL, NULL, hInstance, NULL); if (!GHandle) { return 0; } ShowWindow (GHandle, nShowCmd); UpdateWindow (GHandle); //---------------------------------------------------------- //Programm //---------------------------------------------------------- isRunning = true; while (isRunning) { while (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)) { if (!GetMessage(&msg, NULL, 0, 0 )) { isRunning = false; break; } TranslateMessage (&msg); DispatchMessage (&msg); } } return 1; } //---------------------------------------------------------- //Fensterschliesen wenn Esc gedrückt //---------------------------------------------------------- LRESULT CALLBACK WndProc (HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { switch (iMessage) { case WM_KEYDOWN: { switch (wParam) { case VK_ESCAPE: { PostMessage(hWnd, WM_QUIT, 0, 0); } } } default: return DefWindowProc (hWnd, iMessage, wParam, lParam); } return 0; }//------------------------------------------------- //RatDochMal.h: //------------------------------------------------- #include <windows.h> // Konstanten const int MaxWidth = 500; // Max. Screenbreite const int MaxHeight = 300; // Max. Screenhöhe // Globalvariablen HWND GHandle; // Fenster-Handle bool isRunning; // "Laufvariable"Ich hoffe ihr könnt mir helfen
mfg Dimo
-
Moin,
die Standard I/O Library funktioniert nur in Konsolenprogrammen, damit kommst Du in einer GUI nicht sehr weit ...
http://www.winprog.org/tutorial/fonts.html
Du brauchst ein "Edit"-Fenster/Steuerelement für die Eingabe von Text ...
http://msdn.microsoft.com/en-us/library/bb773169%28VS.85%29.aspx
Gruß
Greenhorn
-
Jo danke...aber kannste mir des mal erklären??? bin net grad der beste in Englisch
-
-
Jo danke werd mir das mal genauer anschauen und hoffen dann das bald alles läuft
-
Er kann sich mit AllocConsole und FreeConsole eine Konsole erzeugen und muss nur die Standard Ausgaben auf diese umleiten.