[MFC C++] Jak dynamicznie ustawic kontrolke na default?

0

Mam taka sytucaje: Przycisk OK w okienku mam ustawiony na Default. Chce, zeby w mo9mencie rozpoczecia wpisywania do kontrolki edit w tym okienku przycisk zapisujacy wpisany tekst zostal ustawiony na default tak, aby po wpisaniu tekst zapisac mozna naciskajac enter. Czy jest na to jakas funkcja w MFC? Jesli tak to gleboko zagrzebana w pokladach MSDNu ;P

0

CButton::SetButtonStyle(int styl)
I ty siebie nazywasz najlepszym programista na AE? :>

0

Jakbys chcial wiedziec "asie programowania" to SetButtonStyle nie dziala tak jak trzeba [green]

0

Domyślam się, że jest to dialog window? A nie możesz przycisku zapisującego ustawić na default button w zasobach, skoro to jest domyślna akcja, a nie OK?
Pomyśl też nad tym, że w dialogu fokus dostaje pierwsza kontrolka według tab-order (chyba że w OnInitDialog() ustawisz inaczej)...
Jeśli będzie to edit, to dostaniesz okienko z kursorem w edit i default button tam gdzie ustawiłeś, czyli najlepiej przycisk zapisywania.

Pomyśl nad logiką fokus/default button, a nie nad funkcją MFC :]
[chyba, że nie chodzi o dialog?]

0

Tak, chodzi o okienko dialogowe. Co do mojej wymiany zdan z kolgea szcz3pem to nie zwracaj na nas uwagi, my tak zawsze :d A jesli chodzi o to co napisales, to w zasadzie masz racje, ale ja tak po prostu z wlasnej czystej ciekawosci chcialem wiedziec jak zrobic to w ten sposob, aby zmienialo sie w trakcie dzialania programu. Uzylem SetButtonStyle i oto moje spostrzezenia:

  1. Obwodka na przycisku dodaj (do zapisania tekstu) sie pojawia i wyglada na to ze sie zmienia na Default, ale jak wcisne enter to i tak wychodzi z okienka, tak jakby Ok bylo nadal domyslnym przyciskiem
  2. kiedy sprawdzam w debuggerze to wychodzi na to, ze jak kliknie sie w tym okienku edycji tekstu, to funkcja OnSetFocus (czyli handler dla klikniecia na to okienko) wywoluje sie raz za razem (czyli SetButtonStyle wyoluje sie raz za razem rowniez)
  3. Probowalem juz wszelkich kombiancji ModifyStyle, SetButtonStyle itd i nic, zawsze default buttonem (przynajmniej tym, ktory reaguje na enter) pozostaje Ok

1 użytkowników online, w tym zalogowanych: 0, gości: 1