1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

c++ mit fenster programmieren!

Discussion in 'Programmieren' started by D.Brown, Jul 18, 2009.

Thread Status:
Not open for further replies.
  1. D.Brown

    D.Brown Kbyte

    Hallo,
    da ich immer nur mit der Console arbeite würde ich gerne wissen wie ich mit Fenster programmieren kann. Bei C++ hab ich was über Microsoft Foundation Classes gelesen.
    Meine frage ist ob es auch möglich ist mit Visual Basic und C++ zusammen zu programmieren oder macht das eher kein sinn ?

    danke danke!!:)
     
  2. VB-Coder

    VB-Coder Megabyte

    Ich verstehe die erste Frage nicht. Wie meinst du das "mit Fenster programmieren" ?

    Zur zweiten Frage: Es kann unter Umständen Sinn machen mit C/C++ und VB "zusammen" zu programmieren. Du kannst dir in C/C++ z.B. Programmbibliotheken entwickeln die du dann unter VB nutzen kannst.
     
  3. D.Brown

    D.Brown Kbyte

    Ich meinte damit wie man das Programm schön gestalten kann damit das Programm nicht in der console ausgeführt wird. sondern in ein Fenster z.b mit Buttons und ein schönes design wie ein Browser da siehst du ja auch ein Fenster du kannst dort auf zurück klicken, auf dem URL klicken, du kannst runterscrollen usw.. das hab ich mit Fenster gemeint. :)

    Ich glaube das nennt man GUI programmierung. Und ich wollte wissen wie das mit c++ geht bzw. ob es sich schon lohnt mit sehr wenigen kenntnissen damit anzufangen!!
     
  4. daboom

    daboom Megabyte

    Also per MFC wäre das von meiner Seite noch empfehlenswert, wenn man das aber über die pure Win-API machen will, wird das glaub ich ganz schön eklig. habs selbst noch nie gemacht, aber ein Template, was DevC++ z.B. anlegt sieht schon sehr unübersichtlich aus.

    Ich wüsste auch gar nicht, wie man dort dann Buttons etc. drauf bekommt. Mit den Visual Studio + MFC geht das schon etwas einfacher. Die Grundprinzipien von MFC sollte man aber trotzdem verinnnerlicht haben, logisch. ;)
     
  5. RealC++

    RealC++ Kbyte

    Ja, mit C/C++ kann man durchaus Fenster erzeugen. Zum Beispiel gibt es da die WinAPI. Es existieren aber auch sehr viele "Systeme" welche diese WinAPI in Klassen kapseln, wie z. B. eben die MFC. Ausserdem kannst du natürlich auch ein "Zusammenklick-System" wie Visual C++ nutzen.

    Da du aber bisher in der Konsole gearbeitet hast, findest du es möglicherweise interessant, wenn du die Fenster aus deinem "Konsolen-Code" erzeugen kannst. Dazu ein Beispiel:
    Code:
    #include <windows.h>
    
    LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
    	switch(message)
    	{
    		case WM_CLOSE:
    			DestroyWindow(hWnd);
    			break;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    	}
    
    	return DefWindowProc(hWnd, message, wParam, lParam);
    }
    
    int main(void)
    {
    	HWND hWnd;
    	MSG msg;
    	WNDCLAS*** wcex;
    
    	wcex.cbSize        = sizeof(WNDCLAS***);
    	wcex.style         = CS_HREDRAW|CS_VREDRAW;
    	wcex.lpfnWndProc   = &WndProc;
    	wcex.cbCl***tra    = 0;
    	wcex.cbWndExtra    = 0;
    	wcex.hInstance     = 0;
    	wcex.hIcon         = LoadIcon(NULL,IDI_APPLICATION);
    	wcex.hCursor       = LoadCursor(NULL,IDC_ARROW);
    	wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    	wcex.lpszMenuName  = NULL;
    	wcex.lpszClassName = TEXT("???");
    	wcex.hIconSm       = wcex.hIcon;
    
    	RegisterClas***(&wcex);
    	
    	hWnd = CreateWindowEx(
    				WS_EX_OVERLAPPEDWINDOW,
    				TEXT("???"),
    				TEXT("???"),
    				WS_OVERLAPPEDWINDOW,
    				CW_USEDEFAULT,
    				CW_USEDEFAULT,
    				CW_USEDEFAULT,
    				CW_USEDEFAULT,
    				NULL,
    				NULL,
    				0,
    				NULL
    		);
    	
    	ShowWindow(hWnd,SW_SHOW);
    	UpdateWindow(hWnd);
    
    	while(GetMessage(&msg,NULL,0,0))
    	{
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    
    	return (int)msg.wParam;
    }
    
    (Wie WNDCLAS*** wirklich heissen sollte, schaust du am besten in der verlinkten Seite.-Die Forensoftware l&#228;sst die Buchstabenkombination leider nicht zu.)

    P.S.: Um das Konsolefenster los zu werden, kannst du es mit dieser Codezeile unsichtbar machen:
    ShowWindow(FindWindow(TEXT("ConsoleWindowClass"),NULL),SW_HIDE);
     
    Last edited: Jul 18, 2009
  6. D.Brown

    D.Brown Kbyte

    also sieht schon etwas schwierig aus!!
    eingentlich wollte ich ja nur wissen wie ich sowas machen kann .
    Das mit dem Fenster aus dem Code erzeugen finde ich wirklich interessant wie du es beschrieben hast,nur werde ich mich sp&#228;ter damit besch&#228;ftigen!!
    trotzdem danke f&#252;r deine Hilfe ich bleibe f&#252;rs erste lieber bei der console :D
     
    Last edited: Jul 19, 2009
  7. Fettbemme

    Fettbemme Halbes Megabyte

    Nun auch reine GUI API Programmierung ist nicht wirklich "schwierig". Es sieht nur etwas "Wild" aus. Du mußt halt alles selber machen. Am Anfang ist das mal gar nicht falsch es 1x gemacht zu haben an einen einfachen GUI Programm mit ein paar Controls. Das erleichtert doch evtl. das Verständnis wenn man später Klassenbibliotheken verwendet. Es gibt halt immer wieder Fälle das kommt man um den Urschleim doch nicht herum und ist in der Win32 API zugange....

    Es gibt da ein sehr schönes Buch von Charles Petzold: "Windows-Programmierung: Das Entwicklerhandbuch zur WIN32-API". Es wird die Win32 API doch ganz gut einem nahe gebracht. Als Einsteigerbuch würde ich es aber nicht klassifizieren. Gut ist es aber trotz dem, und auch noch immer die "Referenz" zu dem Thema.
     
  8. magiceye04

    magiceye04 Wandelndes Forum

    Ich hab neulich mit wxWidgets ein paar kleine Anwendungen mit grafischer Oberfl&#228;che "zusammengeklickt". Ist eigentlich nicht weiter schwer, wenn man erstmal alle Zusammenh&#228;nge kennt.
    Die Installation ist allerdings ziemlich frickelig. Zum Gl&#252;ck gibts mit wxDevCpp eine IDE, wo die wxWidgets fix und fertig dabei sind.
    F&#252;r den Einstieg sollte das reichen. Nur mit Literatur siehts bissel d&#252;nn aus, hab nur was in Englisch gefunden.
     
Thread Status:
Not open for further replies.

Share This Page