Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Активное окно. 
:(
    Опции темы
NikSer
Дата 15.5.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Зравствуйте!

Как при наведении курсора мыши над окном сделать окно активным автоматически?.  
PM MAIL   Вверх
BreakPointMAN
Дата 16.5.2006, 05:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 6
Всего: 24



Гм... вероятно, как-то так:

Код
bool BringWindowToForeground (HWND Wnd)
   {
    HWND hCurWnd;
    DWORD dwThreadID, dwCurThreadID, OldTimeOut;
    if(Wnd==NULL || !IsWindow(Wnd)) return 0;
    SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &OldTimeOut, 0);
    SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, NULL, 0);
    SetWindowPos(Wnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

    hCurWnd = GetForegroundWindow();

    while(true)
       {
        dwThreadID = GetCurrentThreadId();
        dwCurThreadID = GetWindowThreadProcessId(hCurWnd, NULL);
        AttachThreadInput(dwThreadID, dwCurThreadID, true);
        if(SetForegroundWindow(Wnd)) break;
        AttachThreadInput(dwThreadID, dwCurThreadID, false);
       }

    SetWindowPos(Wnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
    SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, &OldTimeOut, 0);
    return true;
   }

//---------------------------------------------------------------------------

void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
   {
    if(Msg.message!=WM_MOUSEMOVE) return;

    if(!Application->Active)
       BringWindowToForeground(Application->Handle);


    for(int i=0;i<Screen->FormCount;i++)
       {
        TForm *F=Screen->Forms[i];
        if(Msg.hwnd==F->Handle && !F->Focused())
           {
            F->SetFocus(); break;
           }
       }
   }
 


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.