IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Немодальное дочернее окно всегда сверху, WinAPI
сообщение
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +



uses
Windows, Messages;

var
WC: TWndClass;
H1, H2: hWND;
Message: TMsg;

function WP(Handle: HWND; Message: UINT; WP: WParam; LP: LParam): longint; stdcall;
begin
case Message of
wm_Destroy: if Handle = H1 then begin
PostQuitMessage(0);
Result := 0;
Exit;
end;
end;
Result := DefWindowProc(Handle, Message, WP, LP);
end;

begin
with WC do begin
Style := cs_HRedraw or cs_VRedraw or cs_OwnDC;
lpfnWndProc := @WP;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := MainInstance;
hIcon := 0;
hCursor := LoadCursor(0, idc_Arrow);
hbrBackground := Color_BtnFace + 1;
lpszMenuName := nil;
lpszClassName := 'Test';
end;

RegisterClass(WC);

H1 := CreateWindow('Test', 'Test1', ws_OverlappedWindow,
100, 100, 320, 200,
0, 0, MainInstance, nil);

H2 := CreateWindow('Test', 'Test2', ws_OverlappedWindow,
110, 110, 320, 200,
H1, 0, MainInstance, nil);

ShowWindow(H1, cmdShow);
UpdateWindow(H1);

ShowWindow(H2, sw_ShowNormal);

while GetMessage(Message, 0, 0, 0) do begin
TranslateMessage(Message);
DispatchMessage(Message);
end;

end.



Второе окно всегда сверху, даже когда первое активно.
Если у второго окна задавать родителем 0, то в панели задач будут 2 иконки, тоже не катит.
Что делать?
Как делать правильно?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
TarasBer   Немодальное дочернее окно всегда сверху   2.11.2010 21:47
volvo   Абсолютно правильное поведение: MSDN -> Owned W…   2.11.2010 22:24
TarasBer   А мне что делать, чтобы сверху было активное окно?…   2.11.2010 22:51
volvo   Можно объяснить, что именно тебе нужно? У тебя ест…   3.11.2010 1:32
TarasBer   > Какая между ними связь? Да никакой, на самом…   3.11.2010 1:49
volvo   Это нехорошее решение. Оно сбивает работу на новых…   3.11.2010 3:40
TarasBer   А, вот оно как. Тогда сделаю во-твоему. Вот они, …   3.11.2010 14:08
TarasBer   Теперь у меня новая проблема. Если переключиться н…   3.11.2010 16:50
volvo   Вот теперь - "вот тебе и преимущества безVCL-…   3.11.2010 23:07
TarasBer   > это уже случай WA_ACTIVE, если не произошло W…   3.11.2010 23:46
volvo   Это я что-то ступил... Есть же еще WM_ACTIVATEAPP.…   4.11.2010 0:33
TarasBer   Обнаружил, что если WM_ACTIVATEAPP написать наобор…   4.11.2010 1:18
volvo   Автоматически этого не будет. Потому что кнопка в …   4.11.2010 2:24
volvo   Так. Ну, допустим, в WM_ACTIVATEAPP проверять, есл…   4.11.2010 4:11
TarasBer   Заработал такой вариант оконной функции: functio…   4.11.2010 16:35
volvo   Вот этого никогда не делал, хотя теоретически знаю…   4.11.2010 16:46
TarasBer   BringWindowToTop(H2); BringWindo…   4.11.2010 17:14


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 13:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name