Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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);

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