Re[2]: Плавающее окно
От: frodo  
Дата: 01.11.04 14:57
Оценка:
Здравствуйте, Softwarer, Вы писали:

S>Здравствуйте, frodo, Вы писали:


F>> Делаю плавающее окно в приложении. Вроде все сделал. Осталось одно — при свертывании главного окна приложения автоматически исчезает и плавающее. Как сделать, чтобы это не происходило?


S>Тем или иным способом обойти функциональность VCL, которая это делает.


S>Собственно, минимизация приложения вызывается следующим кодом:


S>
S>procedure TCustomForm.WMSysCommand(var Message: TWMSysCommand);
S>begin
S>  with Message do
S>  begin
S>    if (CmdType and $FFF0 = SC_MINIMIZE) and (Application.MainForm = Self) then
S>      Application.WndProc(TMessage(Message))
S>


S>Таким образом, минимизацию приложения вообще обойти нетрудно. Если нужно, чтобы сворачивалось все, кроме твоего окна — надо смотреть глубже. Возможно, потребуется имитировать процесс — то есть прятать все окна, кроме твоего.


Спасибо, помогло.
Осталась одна проблема: не могу никак заставить окно оставаться поврх всех (главное окно свернуто).
Пытался использовать функцию SetWindowPos(statusForm->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);

Может есть у кого работающий каркас приложения с плавающим окном?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.