Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на WinApi, C++Builder, Visual C++


Информационный Канал Subscribe.Ru


Выпуск № 45-2004 BCBDEV.RU

Здравствуйте уважаемые подписчики!

Перед вами очередной выпуск рассылки "Программирование на WinApi"
Переводы многих функций Win32API, которые часто используются в данной рассылке, вы можете получать, подписавшись на дружественную рассылку "WinAPI на русском".
Справочник по функциям Win32API вы можете посмотреть на сайте BcbDev.ru в разделе MSDN по-русски.

Как заставить окно быть всегда в фокусе?
Вариантов довольно много. Вот один из них:
void BringToFrontWindow(HWND hWnd)
{
    HWND hCurrWnd;
    int iMyTID;
    int iCurrTID;

    hCurrWnd = ::GetForegroundWindow();
    iMyTID   = GetCurrentThreadId();
    iCurrTID = GetWindowThreadProcessId(hCurrWnd,0);
    AttachThreadInput(iMyTID, iCurrTID, TRUE);
    SetForegroundWindow(hWnd);
    AttachThreadInput(iMyTID, iCurrTID, FALSE);
}
Использовать можно следующим образом. Установить таймер, например, на срабатывание с периодичностью в одну секунду, и по таймеру вызывать эту функцию, передавая ей в качестве параметра дескриптор окна.
...
    switch (message) 
    {
...
    case WM_CREATE:
        SetTimer(hWnd,0,100,NULL);
    break;
    case WM_TIMER:
        BringToFrontWindow(hWnd);
    break;
...

Удачи Вам в Ваших делах Куковинец Андрей aka Juggernaut

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное