Как заставить BS_DEFPUSHBUTTON работать? - PullRequest
2 голосов
/ 13 августа 2010

Моя кнопка имеет следующие стили:

WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_DEFPUSHBUTTON

он создает и правильно загорается, но в моем редакторе управления, когда я нажимаю ENTER, он ничего не делает!

Вот стили моего элемента редактирования:

WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | WS_TABSTOP

Я не использую диалог, я создал свои окна с помощью CreateWindow () и обработал порядок табуляции в цикле сообщений:

MSG msg;
while (GetMessage (&msg, NULL, 0, 0))
{
    if (!IsDialogMessage(hActiveWindow, &msg))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

«hActiveWindow» - это дескриптор окна, которое в данный момент активно у пользователя. таббигация работает, но у меня такое ощущение, что с DEFPUSHBUTTON все портится.

любая помощь?

1 Ответ

3 голосов
/ 13 августа 2010

Возможно, ваша кнопка не установлена ​​по умолчанию.Одним из решений может быть установка поведения кнопки по умолчанию с помощью DM_SETDEFID

/*
in: win: HWND of the window you have
in: id: your id of your default button
*/
SendMessage(win, DM_SETDEFID, id, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...