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

> ВНИМАНИЕ!

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

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


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

 



- Текстовая версия 13.07.2025 23:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"