C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Окно поверх остальных окон, но
Chernov
Отправлено: 12.09.2006, 11:53


Ученик-кочегар

Группа: Участник
Сообщений: 13



Как нибудь можно окно запустить поверх остальных окон, при этом, чтобы оно было неактивно.
Например я печатаю в блокноте, а окно с часиками постоянно горит где-нибудь, если над блокнотиком, то над блокнотиком, но блокнот при этом остается активным.
olegenty
Отправлено: 12.09.2006, 12:06


Ветеран

Группа: Модератор
Сообщений: 2412



FormStyle = fsStayOnTop, только ни разу не делал таких окон в рамках Screen, исключительно в рамках Application
AVC
Отправлено: 12.09.2006, 13:02


Ветеран

Группа: Модератор
Сообщений: 1583



А мне они и в рамках Application страшно мешают.
QUOTE

Например я печатаю в блокноте, а окно с часиками постоянно горит где-нибудь, если над блокнотиком, то над блокнотиком, но блокнот при этом остается активным.

А в блокноте дальше печатаем на ощупь biggrin.gif
Chernov
Отправлено: 12.09.2006, 16:13


Ученик-кочегар

Группа: Участник
Сообщений: 13



if(!::IsWindow(hWnd))
return FALSE;

DWORD dwUserInputTimeout;

::SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT, 0,
&dwUserInputTimeout, 0);
::SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, 0);

::SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE);

::SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE);

::SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0,
(LPVOID) dwUserInputTimeout, 0);
Вот я нашел где-то сам. Всем спасибо.
aquanet sk
  Отправлено: 21.02.2007, 02:42


Станционный диспетчер

Группа: Участник
Сообщений: 87



и куда этот код вставлять?

Попробовал вставить в разные обработчики событий формы Form2, эффекта нет.
Termi_uc
Отправлено: 21.02.2007, 16:53


Дежурный стрелочник

Группа: Участник
Сообщений: 61



QUOTE (aquanet sk @ 21.02.2007, 02:42)
и куда этот код вставлять?

Попробовал вставить в разные обработчики событий формы Form2, эффекта нет.

Пиши
CODE
HWND hWnd = Handle;
if(!::IsWindow(hWnd))return;

::SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE);
aquanet sk
Отправлено: 10.03.2007, 02:52


Станционный диспетчер

Группа: Участник
Сообщений: 87



Вставил в OnCreate у Form2, да она поверх Form1 моего приложения, но не поверх окон любого другого приложения, в том числе и "блокнотика".

Вернуться в Вопросы программирования в C++Builder