Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как запретить для окна получение фокуса ввода ?


Автор: AndreySol 1.9.2006, 06:30
Как для окна контрола запретить получение фокуса ввода, как при щелчке мышью в нем, так и при переходе по "Tab".

Автор: Earnest 1.9.2006, 06:55
При щелкании мышью никак, по TAB - убрать стиль WS_TABSTOP.
Полученный фокус можно сразу отдавать, если он так уж мешает (только не синхронно на OnSetFocus).
Или тебе только FocusRect мешает? Тогда - OwnerDraw и не рисуй его...

Автор: AndreySol 3.9.2006, 06:43
А как насчет такого способа (подсказали на другом форуме)
Код

LRESULT CMyWnd::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
{
      switch(message)
      {
        case WM_SETFOCUS:
              return -1;
        default:
              break;
      };
      return CWnd::WindowProc(message,wParam,lParam);
}

Автор: Dart 3.9.2006, 13:56
AndreySol, а тебе что собственно говоря нужно, от неполучения фокуса?
Если просто получение фокуса на окно ввода информации (типа CEdit), так вполне ModifyStyle(0,WS_DISABLED) подойдёт.
А если уж так критично, то сразу после получения отдай фокус родителю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)