Имеется проект, в котором главное диалоговое окно создаётся через примечательную функцимю PropertySheet
Кнопки apply / ok на основном далоге не создаются. Так вот если в какой либо закладке есть дефолт кнопка — причём с любым ID, то в случае если фокус на любом из контролов этой закладки, то по нажатию на enter весь диалог спокой но себе закрывается — обработчки события дефолтвоой кнопки не вызывается — судя по тому что показывает spy в главный диалог при этом постится WM_COMMAND+IDOK. Что это за фигня и как с этим бороться ?
Кстати по ходу вопрос = как я понимаю в случае любого события над контролом (например нажатие enter) сначала шлётся какой нить WM_KEYUP контролу после чего контрол шлёт нотификационное сообщение например WM_COMMAND своему родителю.... Однако как тогда нотификационное сообщение порпадает в главный диалог а не child-диалог текущей закладки ?
Здравствуйте, Аноним, Вы писали:
А>Имеется проект, в котором главное диалоговое окно создаётся через примечательную функцимю PropertySheet Кнопки apply / ok на основном далоге не создаются. Так вот если в какой либо закладке есть дефолт кнопка — причём с любым ID, то в случае если фокус на любом из контролов этой закладки, то по нажатию на enter весь диалог спокой но себе закрывается — обработчки события дефолтвоой кнопки не вызывается — судя по тому что показывает spy в главный диалог при этом постится WM_COMMAND+IDOK. Что это за фигня и как с этим бороться ?
А>Кстати по ходу вопрос = как я понимаю в случае любого события над контролом (например нажатие enter) сначала шлётся какой нить WM_KEYUP контролу после чего контрол шлёт нотификационное сообщение например WM_COMMAND своему родителю.... Однако как тогда нотификационное сообщение порпадает в главный диалог а не child-диалог текущей закладки ?
Помоему, ситуаця схожа со стандартным СDialog. Переопредели OnOk и тп.
Здравствуйте, gamial, Вы писали:
G>Здравствуйте, Аноним, Вы писали:
А>>Имеется проект, в котором главное диалоговое окно создаётся через примечательную функцимю PropertySheet Кнопки apply / ok на основном далоге не создаются. Так вот если в какой либо закладке есть дефолт кнопка — причём с любым ID, то в случае если фокус на любом из контролов этой закладки, то по нажатию на enter весь диалог спокой но себе закрывается — обработчки события дефолтвоой кнопки не вызывается — судя по тому что показывает spy в главный диалог при этом постится WM_COMMAND+IDOK. Что это за фигня и как с этим бороться ?
А>>Кстати по ходу вопрос = как я понимаю в случае любого события над контролом (например нажатие enter) сначала шлётся какой нить WM_KEYUP контролу после чего контрол шлёт нотификационное сообщение например WM_COMMAND своему родителю.... Однако как тогда нотификационное сообщение порпадает в главный диалог а не child-диалог текущей закладки ?
G>Помоему, ситуаця схожа со стандартным СDialog. Переопредели OnOk и тп.
Ну во первых диалоговая функция зашита внутри функции PropertySheet и переобпередилить OnOk проблематично без примемения извратов типа хуков
Я могу переопределять OnApply в диалоговых функциях закоадок — но учитывая что этот OnApply рассылается всем закоадлкам, которые открывались поолзователем принажатии на enter получается бред !