MFC-Steuerelemente
-
Hi,
gibts da zufällig irgendwo ein Tutorial dazu?
Mein Problem ist das ich vom Borland Builder umsteige und das es mit dem Microsoft Visual Studio sehr viel schwerer ist, Steuerelemte zu verbinden, beeinflussen usw..
Bei Borland konnte man einfach Dinge tun wieButton1->Caption = "Hallo"
oder
Edit1->Text = Button->Caption;
usw. total einfach, beim Visual Studio rall ich das nicht so ganz, ein paar Beispiele wären echt nett! Danke!
-
Man merkt ich bin ein Anfänger, hier gleich das nächste Problem:
Ich möchte einen Timer mit einer bestimmten Zeit initialisieren aber das klappt nicht so wirklich
int CalcTime(int Eingabe) { if(m_Minutes == true) return Eingabe*60000; else return Eingabe*3600000; } void CShutdownDlg::OnShutDown() { int time = CalcTime(m_TimeInput); SetTimer(Timer, time, NULL); }So kennt er m_Minutes in meiner eigenen Funtkion CalcTime nicht, wurde wohl irgendwie als private deklariert

int CalcTime(int Eingabe, bool Minuten) { if(Minuten == true) return Eingabe*60000; else return Eingabe*3600000; } void CShutdownDlg::OnShutDown() { int time = CalcTime(m_TimeInput, m_Minutes); SetTimer(Timer, time, NULL); }So bekomme ich die Warnung das er int time als boolschen wert handhaben wird was ich absolut nicht verstehe und was auch keinen Sinn machen würde

Hmm Ideen?
-
2 Wege:
Über die ID:
Du hat beim Resourceneditor eine ID vergeben.
GetDlgItem(IDC_BUTTON1)->SetWindowText("Hallo Welt");
Du hast ein Objekt angelegt:
m_Button1.SetWindowText("Hallo Welt");
Schau mal hier:
http://www.henkessoft.de/inhalt.htm
vllt. bringt Dich das weiter.
Ansonsten mal nach Visual C++ in 21 Tagen bei google suchen, da gabs mal ne Ausgabe kostenlos zum downloaden.
-
Knuddlbaer schrieb:
2 Wege:
Ansonsten mal nach Visual C++ in 21 Tagen bei google suchen, da gabs mal ne Ausgabe kostenlos zum downloaden.
Und hier der Passende link
(Was bitte funktioniert an diesem link nicht ?)
-
Und hier ein funktionierender Link
http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm
-
Das Buch hab ich mir sogar gekauft aber ich finds ehrlich gesagt richtig mies

"21 in sich abgeschlossene Lektionen machen Sie als Einsteiger schon bald zum Experten"
"Leserprofil: Fortgeschrittener bis Experte"

Das ist echt so ein Abtippbuch wo zumindest ich nichts bei lerne.
Wirklich ärgerlich ist nur das ich an so einfachen Dingen scheiter.2 Fragen:
Ich habe eine Bildkomponente aufgenommen, wie kann ich nun ein Bild darstellen(ohne das mit einem Befehl zu machen, direkt in der Entwicklungsumgebung!)
Ich habe ein zweites Dialogfenster gemacht, wie kann ich das aufrufen?
Danke für eure Hilfe

-
Super, Frage 1 hat sich soeben geklärt, war ja auch zu einfach

-
CDialog::DoModal()
siehe FAQ!!! benutze die suchfunktion bevor du sowas postest
-
Moin,
lies mal Visual C++ 6.0
für Einsteiger und Fortgeschrittenevon Hans-Jürgen Scheibl , Hanser Verlag
Leseproben gibt es auf seiner HomeSeite.
-
Jo, Scheibl ist gut!
Aber wie man einen zweiten Dlg anzeigt steht auch bei Chapman!
-
Ich packs nicht:
Ich habe ein neues dialogfeld erstellt.
Ich habe rechtsklick drauf gemacht und eine neue klasse angelegt.
ich habe die neu erstellte headerdatei in dem hauptdialog eingebunden
nun sagt mir der tolle chapman ich soll eine member variable festlegen und auf privat setzen aber das klappt gar nicht wer er das beschrieben hat,ich kann keine hinzufügen.
Wer ist so nett und hilft mir beim letzten schritt?
Mir sagt das alles gar nichts, dieses Buch ist der letzte Dreck, ich habe ja schon viel gelesen aber dieses buch ist einfach nur

Ums nochmal zu verdeutlichen:
Ich habe 2 Dialogfelder.
Das Hauptprogramm und ein neu erstelltes wasich per button im hauptprogramm aufrufen will.
Wie geht das?
-
Wenn's per Assi bei Dir nicht klappt, dann schreib's doch zu Fuss in den Header!
private: CMsgDlg m_dMsgDlg ;
-
Wenn ich ein neues Fenster erstellen möchte oder ein Dialogfenster anzeigen lassen will, erstelle ich eine neue MFC-Klasse vom Typ CDialog (wenn das Eingabefenster zum hinzufügen einer neuer Klasse kommt, dann kannst du das da auswählen).
Auf diese Klasse muß ein Objekt erstellt werden. Das machst du am besten in der Doc-Klasse, kannst du aber auch in der View machen.
Für das neue Objekt stehen dir viele Routinen zur Verfügung, unter anderem auch um das Dialogfenster aufzurufen.Um es von einem Button aufzurufen klickst du beim entsprechenden Button auf Eigenschaften und dann auf den "Blitz" oben in der Registrierkarte. Es folgt eine Aufstellung der Nachrichten, die der Button verarbeiten kann. Klicke auf die Nachricht "BN_CLICKED".
VC wechselt in den Quellcodeeditor zurück und hat dir gleich eine Methode angefertigt wo du deinen weiteren Quode eingeben kannst (aber das weißt du bestimmt schon
).
Hier gibts du den Namen deines Objektes (von der neu erstellen Klasse) ein und wählst danach die Methode "DoModal()"
Hier mal kurz meine kleine Phrase (Test2 ist die Klasse, lala das Objekt):void CtestView::OnBnClickedButton2() { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. test2 lala; lala.DoModal(); }Hoffe, konnte dir etwas weiterhelfen.
gruß Olli