Anfängerfragen zu MFC GUI
-
Huhu,
ich bin auf ein paar Fragen gestossen auf die ich als Anfänger keine Antwort finde und möchte sofern es keine Umstände bereitet ein paar Antworten einholen die mich dem Verständnis weiterbringen.
Situation:
Ich habe via MFC Assi eine Dialog Gui erstellt. Diese wurde zwar geringfügig verändert aber IDOK/IDCANCEL sind noch beim OK bzw. Abbrechen Button hinterlegt..Die Fragen:
1.) Wenn ich auf den "OK Brutton" klicke wird mein Dialogfenster geschlossen obwohl ich das eigentlich möchte, vielmehr möchte ich damit einen Zustand an bzw. ausschalten.if (nResponse == IDOK) { LPCTSTR ip=_T("127.0.0.1"); CServerSocket *Server = new CServerSocket(); Server->Bind(23,ip); } else if (nResponse == IDCANCEL) { // TODO: Fügen Sie hier Code ein, um das Schließen des // Dialogfelds über "Abbrechen" zu steuern return FALSE; }Wenn ich bei nResponse == IDOK return true setze bleibt mein Dialogfenster auch nicht offen? Ich habe keinen Anhaltspunkt weshalb sich das so verhält und beim "OK" klicken geschlossen wird, geschweige denn was ich dagegen tun könnte
2.) Kann man ein Beschriftungsfeld (Layer?) farbig machen? Und wenn ja geht das via VC++ GUI? Soweit ich mich durchgelesen haben geht das nicht bei jedem beliebigen Feldtyp
3.) In VC 6.0 gab es eine Funktionalität um Member Variabeln für Controls festzulegen insbesondere konnte man Doubleclick und Konsorten den Controls zuordnen das konnte ich in VC++ 2005 bislang noch nicht entdecken.
Für entsprechende Tipps wäre ich dankbarVielen herzlichen Dank für jede Art von Tipp
-
lass dir von dem code generator (class wizard) handlerfunktionen für 'OnOK' und 'OnCancel' erzeugen. da schmeiss dann die aufrufe von CDialog::OnOK bzw. CDialog::OnCancel raus, dann bleibt die DlgBox offen.

-
Undertaker schrieb:
lass dir von dem code generator (class wizard) handlerfunktionen für 'OnOK' und 'OnCancel' erzeugen. da schmeiss dann die aufrufe von CDialog::OnOK bzw. CDialog::OnCancel raus, dann bleibt die DlgBox offen.

Also wenn ich im jetzigen Projekt ändern könnte wäre das richtig toll, zumal das hier nur ein kleiner unbedeutender Codeausschnitt ist....
eBook Empfehlungen
Buch EmpfehlungenDie sich Rund um Windowsprogrammierung beschäftigen und mir einen Überblick über VC++ 2005 geben können wäre wunderbar

Ich kann auch deiner Anleitung/Tipp leider nicht folgen oO
-
zu 1. Was hast Du da für einen Handler benutzt? OnCommand? Das wäre der falsche Ansatz. Diese Funktion benutzt man nur wenn man die Message-Map umgehen will.
zu 2. Schau Dir mal dir Doku zu OnCtlColor an,oder auch TN062 (Technical Note 62) bzgl. Message Refelction.
zu 3. Sicher kannst Du das. Einfach im Dialog Editor mit der rechten Maus das Control anklicken und dort den entsprechenden Menüpunkt auswählen. Es erscheint ein Dialog in dem man die Membervariable erzeugen kann.
Gleiches geht auch über das Kontextmenü des Classview.
-
Martin Richter schrieb:
zu 1. Was hast Du da für einen Handler benutzt? OnCommand? Das wäre der falsche Ansatz. Diese Funktion benutzt man nur wenn man die Message-Map umgehen will.
Ahh danke für die Tipps....
Diese Eventmethode war noch Standard "OnOK();" Auskommentiert und schon das Problem erledigt...Was den Rest angeht werde ich mir das zu Gemüte führen...;)
Nochmals vielen Dank, falls ich noch auf ein Hindernis oder Fragestellung stosse werde ich mich zurückmelden...
