Dateien implementieren
-
Hi ich hätte mal ne frage zu C++(dev).
Ich habe mir son kleiens Programm gebastellt
und bin selber erst nur noch beim erlernen,jedoch
wollte ich es nun so machen das wenn ich einen Button
betätige, sich ein neues Fenster öffnet wo der Benutzer
Zahlen eingeben kann mit denen gearbeitet werden kann.
Dazu wollte ich immer in if anweisungen
eine Datei aufrufen(implementieren), jedoch weis ich
net wie ich das machen muss, weder wie die Datei vom
code her aussehen soll noch wie ich sie aufrufe.Vielleicht kann mir da jemand schnelle hilfe geben, denn
ich mache gerade ein Prakikum und das geht nur noch
diese Woche.
Wäre euch sehr dankbar!
-
Hy,
Suche mal nach CreateWindow/EX.
Damit kannst du ein neues Fenster/Button/Edit... Erzeugen.MFG
RS
-
so wie ich dich verstanden habe möchtest du gerne ein button haben das bekommst du mit :
CreateWindowEx (NULL, "button", TEXT ("Ok"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 10, 80, 25, hwnd, (HMENU) 1, hInstance, NULL) ;
dann brauchst du noch ein eingabefeld:
CreateWindowEx (WS_EX_CLIENTEDGE, "edit", NULL, WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL, 10, 3 * BUTTON_HOHE + 5, 80, 25, hwnd, (HMENU) 2, hInstance, NULL) ;
auf dein button zu reagieren:
case WM_COMMAND : switch (LOWORD (wParam)){ case 1 : //deine raakition break ; } return 0 ;
-
sorry bei dem "edit" fenster musst du den 5 und 6 parameter auf die richtigen koordinate aendern....
-
Ja ich kann euch ja mal mein Programm zeigen.
Kann ich ein fenster durch die CreateWindows/Ex funktion
aufrufen? Der Benutzer soll auf einen Button drücken
und es soll sich ein neues Fenster öffnen wo er eine
eingabe zu tätigen hat. Frage: Wie öffne ich in der main.cpp
datei eine neue datei bzw. ein neues Fenster.
Danke für die Tipps, werde sie mal ausprobieren,
hier jedoch erstmal mein code:#include <windows.h> #include <stdio.h> #include "Berechnung1.h" LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain (HINSTANCE hI, HINSTANCE hPrI, PSTR szCmdLine, int iCmdShow) { char szName[] = "Fensterklasse"; HBRUSH MyBrush = CreateSolidBrush( RGB( 0, 150, 255 ) ); WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hI; wc.hIcon = LoadIcon (NULL, IDI_WINLOGO); wc.hCursor = 0; wc.hbrBackground = MyBrush; wc.lpszMenuName = NULL; wc.lpszClassName = szName; RegisterClass (&wc); HWND hwnd = CreateWindow (szName, "Programm zur Rohrberechnung", WS_OVERLAPPEDWINDOW, 0, 0, 400, 300, NULL, NULL, hI, NULL); ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); //----------------------------------------------------------------------------------- MSG msg; //Die Nachrichtenschleife while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } //----------------------------------------------------------------------------------- LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static HWND hwndButton,hwndButton1,hwndButton2,hwndEdit2; switch (message) { case WM_PAINT: //WM_PAINT Funktion um das Hauptfenster zu installieren hdc = BeginPaint (hwnd, &ps); SetTextColor(hdc, RGB(255,0,0) ); SetBkColor(hdc, RGB(255,255,0) ); TextOut (hdc, 20, 20, "Dies ist ein Programm zur Eingabenberechnung.\n", 45); TextOut (hdc, 20,40, "Bitte treffen sie nun ihre Wahl, zwischen:",42); EndPaint (hwnd, &ps); return 0; case WM_CREATE : //WM_CREATE Funktion um Buttons oder Edit Felder zu installieren hwndButton = CreateWindow ( "button", "1.Innen- und Aussendurchmesser", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 50, 60, 300, 40,hwnd,(HMENU)1,(HINSTANCE)GetWindowLong (hwnd,GWL_HINSTANCE),NULL); hwndButton1 = CreateWindow ("button", "2.Innendurchmesser und Wandstärke", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 50,100, 300,40, hwnd,(HMENU)2, (HINSTANCE)GetWindowLong (hwnd,GWL_HINSTANCE),NULL); hwndButton2 = CreateWindow ("button", "3.Aussendurchmesser und Wandstärke",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 50,140, 300,40,hwnd,(HMENU)3, (HINSTANCE)GetWindowLong (hwnd,GWL_HINSTANCE),NULL); hwndEdit2 = CreateWindow ("Edit", "Edit-Feld",WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL, 50,180,300,40,hwnd, (HMENU)4, (HINSTANCE)GetWindowLong (hwnd,GWL_HINSTANCE),NULL); case WM_COMMAND: //WM_COMMAND fragt die verschiedenen ID's ab if(LOWORD(wParam)==1) { MessageBox (NULL,"Ich bin ein fenster","Ich bin geil",MB_OK); if(IDOK) { void Berechnung1(); } } if(LOWORD(wParam)==2) { MessageBox (NULL,"SCHAKALAKKA","SCHEISS DIE WAND AN",MB_OK); } if(LOWORD(wParam)==3) { MessageBox (NULL,"Hey Sexy Lady","I like your Move",MB_OK); } switch(LOWORD(wParam)) { case 1: SetWindowText(hwndEdit2,""); SendMessage(hwndEdit2, EM_SETREADONLY, TRUE, 0); break; case 2: SendMessage(hwndEdit2, EM_SETREADONLY, FALSE, 0); break; } return 0 ; case WM_DESTROY: //Um das Fenster wieder zu schliessen PostQuitMessage (0); return 0; } return DefWindowProc (hwnd, message, wParam, lParam); } void Berechnung1(HWND hwnd, LPCTSTR lpszMsg, LPCTSTR lpszTitle, WORD wIcon) { MessageBox(NULL,"Es klappt","Du bist der Größte",MB_OK); }
Nun wollte ich in der WM_COMMAND anweisung in jeder if anweisung
auf eine Datei verweisen die ein neues Fenster beinhaltet. Jedoch
habe ich keine Ahnung wie ich das mache.
Vielleicht könnt ihr mir da nochmal helfen!Bedanke mich jetzt schon!
MfG euer Marcusedit: Codetags hinzugefügt.
[ Dieser Beitrag wurde am 03.02.2003 um 14:46 Uhr von cd9000 editiert. ]
-
Willst du nicht noch ein paar Seiten mit unformartierten Code posten?
-
meinst du CreateDialog() ?