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
CButton::SetButtonStyle(int styl)
I ty siebie nazywasz najlepszym programista na AE? :>
Jakbys chcial wiedziec "asie programowania" to SetButtonStyle nie dziala tak jak trzeba [green]
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?]
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:
- 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
- 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)
- Probowalem juz wszelkich kombiancji ModifyStyle, SetButtonStyle itd i nic, zawsze default buttonem (przynajmniej tym, ktory reaguje na enter) pozostaje Ok