TinTin Geschrieben 18. September 2003 Geschrieben 18. September 2003 hi, es ist wieder so weit, ich hätte da gern mal ein problem... ich hab da in meiner dialoganwendung ein editfeld. jetzt hätte ich gerne, dass, wenn man mit dem tabulator oder der maus den focus/cursor in dieses feld setzt, eine meldung angezeigt wird. ich hab schon ein wenig gesucht im forum und msdn, aber zu den schlagworten focus, cursor oder CEdit hab ich nichts verwertbares gefunden. es gibt zwar ein OnSetFocus() aber das ist wohl nur für COleObject. die ganze sache kann ja eigentlich nicht so schwierig sein und ich seh mal wieder den wald vor lauter bäumen nicht. ich hoffe ihr könnte mich in die richtige richtung schubsen... :confused: ciao TinTin Zitieren
Goos Geschrieben 18. September 2003 Geschrieben 18. September 2003 Fuer ein CEdit gibts ne EN_SETFOCUS Message. Findet sich aber auch im ClassWizdard. Komisch, dass du das nicht gefunden hast. Goos Zitieren
TinTin Geschrieben 19. September 2003 Autor Geschrieben 19. September 2003 danke, hab ich dann auch gestern abend noch gefunden. ist aber noch nicht das was ich eigentlich will, denn ich bekomme den focus nicht mehr weg. was ich eigentlich machen will ist folgendes. ich habe ein editfeld, in dem steht ein name, bestehend aus anrede, titel, vor- und nachname. nun soll, wenn ich mit der maus oder dem tabulator auf das editfeld gehe ein kleiner dialog geöffent werden, der mir die möglichkeit gibt den namen in seinen einzelteilen getrennt zu bearbeiten. z.b. den vornamen ändern und aus einem doktor einen professor machen. beim schliessen soll der string dann wieder zusammengebaut werden und im ersten editfeld agezeigt werden. bei der EN_SETFOCUS lösung geht mir der bearbeitungs dialog immer wieder auf, da, wenn dieser geschlossen wird das erste editfeld immer wieder den focus erhält. hat jemand noch eine idee, die bei maus und tabulator einsatz funktioniert. ciao TinTin Zitieren
jasso Geschrieben 19. September 2003 Geschrieben 19. September 2003 hi versuch mal den focus bewusst auf ein anderes Steuerelement zu platzieren. das problem an der sache is nur dass du mit einer boolschen variable einen kleinen umweg gehen musst damit nicht sofort wieder die OnSetFocus.. aufterufen wird versuchs mal ungefähr so: void CDiagrammDlg::OnSetfocus...() { if(m_schongesetzt) { m_schongesetzt = false; MessageBox("test") oder Dialog.DoModal() ...; } GetDlgItem(IDC_...)->SetFocus(); m_schongesetzt = true; } die boolsche variable muss türlich am anfang gleich true gesetzt sein und die namensgebung is vielleicht a bissel dämlich, aber mir ist gerade nix besseres eingefallen. mfg jasso Zitieren
TinTin Geschrieben 19. September 2003 Autor Geschrieben 19. September 2003 bedankt, netter tipp. jetzt is alles in butter... ciao TinTin Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.