| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Фокус на окно |
| Автор: gansm 10.1.2008, 19:25 |
| Помогите установить фокус на окно. Суть: Пишем отладчик и когда, срабатывает бряка, нужно установить фокус на отладчик. Отладчик пишется на Visual Studio под unicode. Никак не могу установить фокус. И задачка вроде простая, но ... |
| Автор: baldina 10.1.2008, 19:31 |
| AttachThreadInput (); SetFocus(); не помогает? |
| Автор: gansm 10.1.2008, 19:34 |
| SetFocus - не помогает AttachThreadInput - весит все штуки типа: void SystemActivateWindow(HWND hWindow) { ASSERT(IsWindow(hWindow)); ::ShowWindow(hWindow, SW_SHOWNORMAL); INT32 nThisTID = ::GetCurrentThreadId(); HWND hCurrWnd = ::GetForegroundWindow(); if (!::IsWindow(hCurrWnd)) { ::SetForegroundWindow(hWindow); return; } if (hCurrWnd == hWindow) return; INT32 nCurrTID = ::GetWindowThreadProcessId(hCurrWnd, 0); if (nThisTID != nCurrTID) ::AttachThreadInput(nThisTID, nCurrTID, TRUE); VERIFY(::SetForegroundWindow(hWindow)); if (nThisTID != nCurrTID) ::AttachThreadInput(nThisTID, nCurrTID, FALSE); // VERIFY(RedrawWindow(hWindow, NULL, NULL, RDW_UPDATENOW | RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN)); } не проходят также не помогает: ::SwitchToThisWindow(this->m_hWnd, TRUE); ::SetForegroundWindow(this->m_hWnd); ::BringWindowToTop(this->m_hWnd); |