Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Position message box   Найти похожие ветки 

 
Jon ©   (2008-08-12 13:20) [0]

How can ShowMsg be centered on parent form instead of sreen?


 
azsd ©   (2008-08-12 23:58) [1]

you can use SetWindowHookEx to get rid of popuped MessageBox, or you can using an NewThreadEx() to create a thread, then get the message box by findwindow and move it. but I suggest to new a form with same layout like Messagebox then ShowModal() it.


 
Jon ©   (2008-08-13 01:58) [2]

Thanks for mentioning hooks!
This is my solution:


program Test;

uses
 Windows, Messages, KOL;

var
 Hook: HHOOK;

function HookProc(Code,wParam,lParam: Integer): Lresult; stdCall;
var
 Wnd: Hwnd;
 Rect: TRect;
 MB_Width, MB_Height: Integer;
begin
 if Code < 0 then
   CallNextHookEx(Hook,Code,wParam,lParam);
 if Code = HCBT_ACTIVATE then
 begin
   Wnd := wParam;
   GetWindowRect(Wnd,Rect);
   MB_Width := Rect.Right - Rect.Left;
   MB_Height := Rect.Bottom - Rect.Top;
   MoveWindow(Wnd,Applet.Left + ((Applet.Width - MB_Width) div 2),Applet.Top + ((Applet.Height - MB_Height) div 2),MB_Width,MB_Height,True);
   UnhookWindowsHookEx(Hook);
 end;
 Result := CallNextHookEx(Hook,Code,wParam,lParam);
end;

procedure MouseDown(Dummy: Pointer; Sender: PControl; var Mouse: TMouseEventData);
begin
 if Mouse.Button <> mbLeft then Exit;
 Hook := SetWindowsHookEx(WH_CBT,HookProc,0,GetCurrentThreadId);
 ShowMsg(">> Click! <<",MB_OK or MB_APPLMODAL or MB_SETFOREGROUND);
//  UnhookWindowsHookEx(Hook);
end;

begin
 Applet := NewForm(nil,"Test").SetSize(640,480);
 Applet.OnMouseDown := TOnMouse(MakeMethod(nil,@MouseDown));
 Run(Applet);
end.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.049 c
15-1270055427
Юрий Зотов
2010-03-31 21:10
2010.08.27
Ну почему именно на этом сайте процветают хамство и грубость?


4-1237722427
Delion
2009-03-22 14:47
2010.08.27
Comm Port под Vista AMDx64


2-1269287735
Сергей
2010-03-22 22:55
2010.08.27
Вращение объектов (шара вокруг своей оси)


15-1264541405
Юрий
2010-01-27 00:30
2010.08.27
С днем рождения ! 27 января 2010 среда


15-1269176860
Правильный$Вася
2010-03-21 16:07
2010.08.27
загрузочный ли образ