Как скрыть окно при потере фокуса?

Тема в разделе "MS Visual C++", создана пользователем exileX, 6 ноя 2003.

Статус темы:
Закрыта.
  1. exileX

    exileX Гость

    Делаю так:

    case WM_KILLFOCUS:
    ShowWindow(hwnd, SW_HIDE);
    break;

    В итоге окно прячется, когда потеряет фокус, приобретёт и снова потеряет.
    Помогите, а то замучался уже.
     
  2. Kernel

    Kernel Гость

    В смысле? Опиасанный выше код должен работать нормально -- спрятал окно и всё (по крайней мере у меня так работает )... так что ошибка (я кстатии так и не понял в чём она заключается) явно не в нём ...
     
  3. ????

    ???? Гость

    МОжет Kernel и прав, но мне кажется что этот код не совсем правильный, т.к. WM_KILLFOCUS посылается до потери фокуса, т.е. фокус еще остается на окне, а ты вызываешь ShowWindow(hwnd, SW_HIDE). Т.е. должено посылаться второе сообщение WM_KILLFOCUS... Так можно и повесить прогу.
    Попробуй юзать SetWindowLong, а в качестве параментры выбирай нужный тебе стиль окна.
     
  4. Kernel

    Kernel Гость

    Не, сообщение второй раз не посылается - проверял :D
    Единственное что я могу предположить по этому поводу, это то, что активное окно не всегда имеет фокус ... Попробуй сделать ему SetFocus ... может поможет :D
     
  5. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Я конечно не спец в C++, но один знакомый подсказал что можно сделать так
    Код (Text):
    case WM_ACTIVATE:
    if(LOWORD(wParam)==WA_INACTIVE)ShowWindow(hwnd,SW_HIDE);
    break;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей