Anfänger fragen



  • ok also ich bin anfänger...ob die fragen aber auch welche sind 😉

    Consolen Anwendung mit MFC
    ich hab zwar eine consolen anwendung mit mfc aber noch nich die WinSockets (CAsyncSocket usw.).Klar denn selbst bei einer richtigen MFC-EXE muss man den socket support erst extra anklicken .Also habe ich ein leeres MFC-EXE project mit und ohne Socket-Support erstellt und um manuel die sockets zu bekommen is da bloß ein #include und eine Function (AfxSocketInit() oder so)
    naja und wenn ich das bei meinem consolen project mache kann ich mit dem klassen assistenten nun auch eine neue klasse erstellen die von CAsyncSocket erbt.von dieser neunen Klasse mache ich nun auch eien instanz kann mit dieser dann auch connecten ABER die Events wie OnConnect werden mit aufgerufen
    😉 hehe hoffentlich habt ihr das verstanden

    MFC-EXE

    giebt es eine möglichkeit wie ich sachen auf dem dialog wie Buttons zur laufzeit laden und dann auch auf den dialog kriegen kann ?

    thx



  • 1. die virtuelle Methoden überschreiben. (OnReceive, OnAccept usw.)

    2. mit Create kannst du alles erstellen. z.B. CButton::Create, CEdit::Create...



  • THX

    beim 2. habe ich noch folgendes problem:

    folgender code wird ausgeführt wenn ich mit der maus auf den dialog klicke:

    CButton test1;
    RECT rr;
    rr.left = 1;
    rr.top = 1;
    rr.bottom = 700;
    rr.right = 700;
    CWnd phandle;
    UINT ID_TEST = 0;
    test1.Create("test 123",1,rr,&phandle,ID_TEST) ;

    leider kommt dann Window creation failed (0x0578)



  • Na, statt dem phandle gib mal this an. Create möchte ein existierendes ParentWindow haben. Dein Button wird übrigens so gleich wieder zerstört werden durch den Dtor...

    Also entweder CButton* pBtn = new CButton; (Diesen dann mit delete wieder freigeben - irgendwann einmal) oder du machst den Button static...



  • Du musst ID_TEST bei den Ressourcen ID's angeben



  • Original erstellt von Nimrod:
    Du musst ID_TEST bei den Ressourcen ID's angeben

    Schmarn - muss man nicht...



  • Stimmt, ist halt übersichtlicher wenn man ID_TEST definiert anstatt immer eine 0 zu schreiben.

    @<Cain>
    Was soll die folgende Zeile ?

    UINT ID_TEST = 0;
    

    Die kannst du dir genausogut schenken. Füge in deinen Header die Zeile

    #define ID_TEST 0
    

    ein wenn du anstatt der ID immer ID_TEST schreiben willst. So wie du das gemacht hast müsstest du ID_TEST vor dem verwenden immer neu deklarieren, was ja nicht Sinn der Sache sein kann... Achso, kleiner Tipp. Benutze CRect anstelle von RECT um alles in eine Zeile zu packen

    CRect rr(1, 1, 700, 700);
    

    [ Dieser Beitrag wurde am 05.11.2002 um 17:50 Uhr von MaSTaH editiert. ]



  • Mal was anderes. Du benutzt doch sicher VisualStudio? Warum benutzt du nicht ein vorgefertigtes Project mit Dialogresourcen anstatt dir einen mit dem Erstellen von Dialogen abzuhampeln?

    [ Dieser Beitrag wurde am 05.11.2002 um 17:54 Uhr von MaSTaH editiert. ]



  • hehe also das man RECT auch durch CRect ersetzten kann wusste ich nich...

    es geht mir bloß um die theorie...

    ich hab mir gedacht wie könnte ich den ein snake spiel (das ich in VB schonmal gemacht habe) erstellen,das auf dem dialog lauft und als punkte laufen z.B. Textboxen ?

    also wie gesagt is schwachsin das so zu machen(würde ich wohl mit RECT und halt DirectDraw 7 machen) aber nur WIE WÜRDE es gehen ?

    wenn sich die schlange dann verlängert muss ich ja ein weiters controls laden
    (voher schon alle anfertigen und evt. unsichtbar lassen ist nich so schön ;))

    THX


Anmelden zum Antworten