IsDialogMessage
От: Kochuev  
Дата: 07.12.03 14:27
Оценка:
Знаю, тема заезженная, но вот тут возник вопрос:

Есть немодальное окно 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.