Я нашел ответ на свой вопрос. Дело в том, что в немодальном окне надо обрабатывать в оконной процедуре сообщение DM_GETDEFID и возвращать ID кнопки по умолчанию. Вот так-то...
Знаю, тема заезженная, но вот тут возник вопрос:
Есть немодальное окно CreateWindow(...)
Мне надо было заставить работать WS_TABSTOP и BS_BEFPUSHBUTTON
Модифицировал цикл выборки сообщений:
if(!IsDialogMessage(hwnd0, &msg))
{
// translate any accelerator keys
TranslateMessage(&msg);
// send the message to the window proc
DispatchMessage(&msg);
}
Так вот WS_TABSTOP заработал, а кнопка по умолчанию все-равно нажиматься не хочет:
CreateWindow(
"BUTTON", // class
"Ok", // title
WS_VISIBLE|WS_CHILD|
WS_TABSTOP|BS_TEXT|
BS_DEFPUSHBUTTON,
23,65, // x,y
60,25, // size of window
hwnd0, // parent
NULL, // menu
hMainInstance, // instance
NULL); // creation parms
Никто не подскажет, в чем дело? Просто очень уж не хочется делать сабклассинг, чтобы перехватить Enter в Edit'е:
CreateWindow(
"EDIT", // class
NULL, // title
WS_VISIBLE|WS_CHILD|
ES_AUTOHSCROLL|DS_FIXEDSYS|
ES_PASSWORD|WS_BORDER|
WS_TABSTOP,
15,35, // x,y
80, // size of window
20,
hwnd0, // parent
NULL, // menu
hMainInstance, // instance
NULL); // creation parms