Text im Fenster anzeigen
-
Sorry Leute das ich euch mit so einer bescheuerten Frage störe, aber ich schaff es einfach nicht alleine!! Kann mir einer sagen wie man Texte in einem Windows Fenster aschreibt, also beim Programmiren.
Also ich würde gerne wenn ich programmiere einen Text hinschreiben und dann wenn ich das Programm aufrufe diesen text im Windows fenster sehen. Ginge das??
Es wäre echt geil wenn ihr mir helfen würdet, denn ich bin schon ganz verzweifelt. Bin ein Noob, aber ich hoffe ich lerne es noch
Danke schon mal im Vorraus!!
edit: Bitte aussagekräftige Titel verwenden.
Wie man Fragen richtig stellt
-
Tschuldigung, weiss echt nicht wieso erdas letzte Wort zensiert hat....
sollte heissen .... im V orraus !!
-
TicoFresh schrieb:
sollte heissen .... im V orraus !!
...und ist falsch geschrieben.
Was für ein Programm baust Du denn? Ist es ein "normales" Anwendungsfenster oder ein Dialog?
Schau Dir mal die Funktionen DrawText() und TextOut() an...
-
Sorry bin ein ganzer Noob, kenn sogar das nicht. Welches Programm ist das bester heut zu tage, denn ich habe Dev C++ 4.0 .... geht es mit jedem Programm ??
-
Ich will mal erklären was ich bisjetzt gemacht habe:
Zuerst ging ich auf NEW PROJEKT ... dann auf WINDOWS APPLICATION ...
dann kam ein fenster mit vielen verschiedenen Befehlen ...
Da war am Anfang dieser Text:
***
#include <windows.h>
/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
/* Make the class name into a global variable */
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)***
hoffe es hilft dir etwas weiter, habe ich das richtige gewählt??
Mfg Tico
-
hier ist alles was bei mir steht und somit geht auch ein Windows Fenster auf:
#include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof(WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor(NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use light-gray as the background of the window */ wincl.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH); /* Register the window class, if fail quit the program */ if(!RegisterClassEx(&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Windows App", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow(hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage( ) returns 0 */ while(GetMessage(&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage( ) gave */ return messages.wParam; } /* This function is called by the Windows function DispatchMessage( ) */ LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage(0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
Wenn du mir in diesen Text schreiben könntest wo ich was eingeben oder hinschreiben muss um Texte im Windows Fenstzer schreiben zu koenen, wäre es echt nett
!!
Mfg Tico
-
/* This function is called by the Windows function DispatchMessage( ) */ LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect; switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage(0); /* send a WM_QUIT to the message queue */ return 0; case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, TEXT ("DIES IST MEIN TEXT"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; EndPaint (hwnd, &ps) ; return 0; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
Das fügste so ein (ersetzt Deine alte WindowProcedure komplett!).
Ob Dir dieser Quelltext jetzt was bringt, bezweifle ich mal...
Vielleicht möchtest Du erstmal ein WinAPI32-Tutorial durcharbeiten?
-
Hallo,
koenntest du mir vielleicht den download Link von dem gerade häufig verwendetem C++ Programm geben??
Danke für deine Hilfge und den Link wo alles erklärt wird, aber da ist alles im Zusammenhang mit einem ganz anderen C++ Programm und deswegen verstehe ich manches nicht...
Mfg Tico
-
TicoFresh schrieb:
koenntest du mir vielleicht den download Link von dem gerade häufig verwendetem C++ Programm geben??
Wo wurde hier ein C++-Programm erwähnt
TicoFresh schrieb:
Danke für deine Hilfge und den Link wo alles erklärt wird, aber da ist alles im Zusammenhang mit einem ganz anderen C++ Programm und deswegen verstehe ich manches nicht...
Warst du hier: http://www.henkessoft.de/api1.htm
-
Ja ich war dort und da werden doch Beispiele gegeben, von Ordnern oder wo man hingeht um etwas zu aktivieren ... Da ist alles ganz anders als bei meinem C++ Programm, deswegen habe ich nach dem neuesten Gefragt !!!
Mfg Tico
-
Suchst du jetzt ein Tutorial zu deiner IDE, oder zu WinAPI
-
Zu WinAPI glaube ich :D... verdammt mein Kopf ´zerschellkt gleich !!
Mfg Tico
-
Dann scroll mal etwas nach unten, oder schau dir das Tutorial von Loggy an: http://www.win-api.de/
-
Jo danke, werde ich tun
bis dann....
Mfg Tico
-
Die Seite ist echt nicht schlecht, denn auch paar Programme laufen bei mir, doch als ich ein Beispielsprogramm von "Ein eigenes Fenster" herunter geladen habe (von Borland C++) ging es auf einmal nicht...
Er zeigt bei mit das hier an, wenn ich es versuche zu compilieren:::
C:\DOKUME1\Admin\LOKALE1\Temp\ccmsaaaa.o(.text+0x1a):winmain5.cpp: undefined reference to
GetStockObject@4' C:\\DOKUME~1\\Admin\\LOKALE~1\\Temp\\ccmsaaaa.o(.text+0x272):winmain5.cpp: undefined reference to
GetTextExtentPoint32A@16'
C:\DOKUME1\Admin\LOKALE1\Temp\ccmsaaaa.o(.text+0x2c2):winmain5.cpp: undefined reference to `TextOutA@20'Kannst du mir sagen was das bedeuten kann, und wie ich diesen Fehler beheben kann??
Mfg Tico
-
Du musst Gdi32.lib linken! Wie genau das bei deiner IDE geht kann ich dir aber nicht sagen. Schau einfach mal ins "Andere Compiler"-Forum oder such mal mit Google, danach - da wirst du sicher eine Anleitung für DevC++ finden, um WinAPI-Anwendungen erstellen zu können
-
Hepi schrieb:
Das fügste so ein (ersetzt Deine alte WindowProcedure komplett!).
Was hat dir denn gegen seine WindowProc?
Ich denke irgentwo mal gelesen zu haben das man so machen soll:
case WM_DESTROY: PostQuitMessage(0); /* send a WM_QUIT to the message queue */ break; // um sag break; anstatt return 0; gehts...
-
Wenn du eine Nachricht bearbeitest, musst du sie nur selten an DefWindowProc weiterreichen. return 0 funktioniert.
-
cd9000 schrieb:
Wenn du eine Nachricht bearbeitest, musst du sie nur selten an DefWindowProc weiterreichen. return 0 funktioniert.
break; funktioniert auch... :p
Aber das erste Argument ist überzeugend
-
Das kommt eben darauf an, ob man im default des switch DefWindowProc aufruft und unterhal return 0 stehen hat (dann kann man ein break nehmen), oder ob man gar kein default hat und DefWindowProc nach dem switch aufruft (dann brauchst du return 0)