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 Marcus

    edit: 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() ?


Anmelden zum Antworten