C++ win application
-
German:
Hi @ all ich brauche hilfe undzwar....
ich und mein kumpel wollen c++ lernen und programmieren...
wir ham auch schon eine windows applikation hinbekommen....
aber nun kommt mein problemm....
ich habe ein windows Fenster wo nichts drinn steht
aber ich möchte das da was drin steht wie bekomme ich das hin???
unten ist ein codeEnglish:
Hi @ all I need help and ....
I and my buddy want to learn C + + programming ...
we have already a Windows application ....
But now comes my problem ....
I have a window where there is nothing
but I would like to because there is something
How does that work?
below is a code]#include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "Info"; 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 Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails 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 */ "Info", /* 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; }mfG: Holger
-
Musst Elemente in dem Fenster erstellen, Stichwort Child-Windows (siehe beliebiges WinAPI-Tutorial).
-
Weg mit dem Gefrickel!
Projekt auf Multibyte einstellen und los gehts:#include <windows.h> #include <string> long __stdcall WindowProcess(HWND windowHandle, unsigned message, WPARAM wParam, LPARAM lParam); int __stdcall WinMain(HINSTANCE, HINSTANCE, char*, int) { WNDCLASS windowClass = { }; windowClass.lpfnWndProc = WindowProcess; windowClass.hCursor = LoadCursor(0, IDC_ARROW); windowClass.lpszClassName = "Main"; RegisterClass(&windowClass); CreateWindow("Main", 0, WS_VISIBLE | WS_POPUP, 100, 100, 640, 480, 0, 0, 0, 0); MSG message; while(GetMessage(&message, 0 , 0, 0)) DispatchMessage(&message); } long __stdcall WindowProcess(HWND windowHandle, unsigned message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_LBUTTONDOWN: SendMessage(windowHandle, WM_SYSCOMMAND, SC_MOVE | 0x0002, 0); return 0; case WM_PAINT: { // Erstmal paar Sachen holen RECT clientArea; GetClientRect(windowHandle, &clientArea); HDC deviceContext = GetDC(windowHandle); // Dann paar Sachen erstellen HBRUSH backgroundBrush = CreateSolidBrush(RGB(75, 75, 75)); HFONT textFont = CreateFont(-MulDiv(20, GetDeviceCaps(deviceContext, LOGPIXELSY), 72), 0, 0, 0, FW_BOLD, false, false, false, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial"); // Sachen als aktuell setzen SetBkColor(deviceContext, RGB(75, 75, 75)); SetTextColor(deviceContext, RGB(255, 200, 100)); SelectObject(deviceContext, textFont); // Endlich zeichnen BeginPaint(windowHandle, 0); FillRect(deviceContext, &clientArea, backgroundBrush); std::string myText = "Hello, World!"; DrawText(deviceContext, myText.c_str(), myText.size(), &clientArea, DT_SINGLELINE | DT_VCENTER | DT_CENTER); EndPaint(windowHandle, 0); // Und aufräumen DeleteObject(textFont); DeleteObject(backgroundBrush); DeleteDC(deviceContext); } return 0; } return DefWindowProc(windowHandle, message, wParam, lParam); }
-
sorry aber da ich noch ein anfänger insolchen sachen bin weiß ich nicht genau was ihr mir da gerade erzählen wollt

villeicht bearbeitet mir einer den c++ code und schreibt dan rein wo was rein muss???
-
Copy & Paste mein code, kompilieren, ausführen. Einfacher geht's kaum...
-
Vergiss deinen code :p
-
Entfrickler v2.2 schrieb:
Copy & Paste mein code, kompilieren, ausführen. Einfacher geht's kaum...
den kann man net schließen
-
wenn du sagst ihr wollt es lernen, habt ihr da schon vorkenntnisse von c++ und wollt versuchen jetzt ein gui zu programmieren?
-
Ja wollen wir
Fahrstuhlmusik schrieb:
wenn du sagst ihr wollt es lernen, habt ihr da schon vorkenntnisse von c++ und wollt versuchen jetzt ein gui zu programmieren?
-
Holger94 schrieb:
ich und mein kumpel wollen c++ lernen und programmieren...
wir ham auch schon eine windows applikation hinbekommen....Keine gute Idee, so C++ zu lernen.
Die Programmiersprache C++ bietet von sich aus keine GUI an, man arbeitet anfänglich also in der Konsole. Das reicht aber längstens, um die Sprachmittel zu erlernen. Mit der Zeit kann man dann auch andere Bibliotheken benutzen.
Klar kannst du auch so anfangen. Nur lernst du auf diese Weise nicht C++, sondern WinAPI, also ein betriebssystemspezifisches Framework, und das noch in C.
Falls du dich mit "echtem" C++ beschäftigen willst, kannst du dir in den FAQ Bücher- und Tutorialvorschläge anschauen.
-
Nexus schrieb:
Holger94 schrieb:
ich und mein kumpel wollen c++ lernen und programmieren...
wir ham auch schon eine windows applikation hinbekommen....Keine gute Idee, so C++ zu lernen.
Die Programmiersprache C++ bietet von sich aus keine GUI an, man arbeitet anfänglich also in der Konsole. Das reicht aber längstens, um die Sprachmittel zu erlernen. Mit der Zeit kann man dann auch andere Bibliotheken benutzen.
Klar kannst du auch so anfangen. Nur lernst du auf diese Weise nicht C++, sondern WinAPI, also ein betriebssystemspezifisches Framework, und das noch in C.
Falls du dich mit "echtem" C++ beschäftigen willst, kannst du dir in den FAQ Bücher- und Tutorialvorschläge anschauen.
also wir wollen einfach nur die grundkenntnisse von c++ lernen und dann evt. wenn wir ein bissel mehr wissen irgendetwas schreiben....
-
Holger94 schrieb:
also wir wollen einfach nur die grundkenntnisse von c++ lernen und dann evt. wenn wir ein bissel mehr wissen irgendetwas schreib....
Dann ist das, was du machst, wie gesagt die falsche Vorgehensweise.
Du kannst dir die folgenden Bücher anschauen, um C++ zu lernen:
- C++ Primer
- Thinking in C++ (gibt es auch gratis als Online-PDF)
Oder zumindest folgendes Tutorial:
http://tutorial.schornboeck.net/inhalt.htm
-
den code von entwickler würd ich so auch nicht benutzen.
die paintmethode sollte mit einem beginpaint beginnen und mit einem endpaint abschließen.
-
Und nach den Grundlagen der Programmiersprache, würde ich eher auf ein Framework setzen, anstatt alles auf WinAPI Basis zu machen. Wird auf die Dauer recht mühsam.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-81596.html
-
Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.