Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] PropertySheet - неприятная мелочь 11.11.03 01:59
Автор: Disappear Статус: Незарегистрированный пользователь
|
Создаю обычный tabs PropertySheet с несколькими страничкми, и с флагом PSH_NOAPPLYNOW.
Все окей, конпка ОК и Cancel, но по дефолту нажимается Cancel. Тоесть она при создании помечается как BS_DEFPUSHBUTTON, а как переправить этот фокус на OK, нужно чтобы ОК нажимался по дефолту, может флаги какие нужно знать или еще чего сделать??
Вообще-то уже около 3-4 способов перепробовал, всеравно Cancel по дефолту :(
|
|
[Win32] Эх 11.11.03 15:58
Автор: amirul <Serge> Статус: The Elderman
|
> Создаю обычный tabs PropertySheet с несколькими страничкми, > и с флагом PSH_NOAPPLYNOW. Сказал бы как создаешь. Где темплейты берешь? Если генеришь на лету - там и вставляй нужное свойство, а если из ресурса, то обрати внимание на отличие между PUSHBUTTON и DEFPUSHBUTTON
> Вообще-то уже около 3-4 способов перепробовал, всеравно > Cancel по дефолту :( Мог бы и назвать для приличия эти способы, чтоб другие не советовали
|
| |
[Win32] Вот 12.11.03 01:30
Автор: Disappear Статус: Незарегистрированный пользователь
|
> > Создаю обычный tabs PropertySheet с несколькими > страничкми, > > и с флагом PSH_NOAPPLYNOW. > Сказал бы как создаешь. Где темплейты берешь? Если генеришь > на лету - там и вставляй нужное свойство, а если из > ресурса, то обрати внимание на отличие между PUSHBUTTON и > DEFPUSHBUTTON > > > Вообще-то уже около 3-4 способов перепробовал, > всеравно > > Cancel по дефолту :( > Мог бы и назвать для приличия эти способы, чтоб другие не > советовали
PropPage у меня создаются из ресурсов,
затем они добавляются в PropSheet, я использую WTL если кто знаком
HPROPSHEETPAGE hP = m_Page1.Create();
AddPage(hP);
hP = m_Page2.Create();
AddPage(hP);
m_psh.dwFlags = PSH_USECALLBACK | PSH_NOAPPLYNOW;
DoModal(hWndParent);
пробовал в WM_CREATE поменять фокус на кнопке, не получилось, пробовал менять стили кнопок с PUSHBUTTON на DEFPUSHBUTTON - тоже не вышло
пробовал в CallBack перехватить PSCB_INITIALIZED и поменять стили - тоже не выходит. Странно...
|
| | |
TabOrder ? 12.11.03 20:51
Автор: Neznaika <Alex> Статус: Member
|
Если можешь поменять TabOrder у своих кнопок, то сделай так, чтобы у OK - он был меньше, чем у Cancel.
Обычно в редакторе ресурсов - можно поменять TabOrder.
|
| | | |
Афайк, по enter-у независимо от таб ордера нажимается defpushbutton 13.11.03 15:57
Автор: amirul <Serge> Статус: The Elderman
|
|
| | | | |
Не всегда 13.11.03 17:25
Автор: Neznaika <Alex> Статус: Member
|
Простой пример:
Если в диалоге есть multiline edit control и фокус на нем, то по клавише Enter - defpushbutton не вызовется.
|
| | | | | |
Это да 14.11.03 15:27
Автор: amirul <Serge> Статус: The Elderman
|
> Простой пример: > Если в диалоге есть multiline edit control и фокус на нем, > то по клавише Enter - defpushbutton не вызовется. Контрол сам обрабатывает нажитие enter-а. Но большинство этого не делают и DefWindowProc делает это за них.
|
| | |
[Win32] Странно 12.11.03 04:27
Автор: amirul <Serge> Статус: The Elderman
|
> пробовал в WM_CREATE поменять фокус на кнопке, не > получилось, пробовал менять стили кнопок с PUSHBUTTON на > DEFPUSHBUTTON - тоже не вышло Наводящий вопрос: а ты оставлял только одну defpushbutton? Потому как должно работать по идее.
> пробовал в CallBack перехватить PSCB_INITIALIZED и поменять > стили - тоже не выходит. Странно... Если действительно все правильно делаешь, а ничего не помогает, поменяй местами ID-шники (IDOK и IDCANCEL), по крайней мере реакцию на них.
|
|
|