mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-16 17:19:26 +02:00
win32: remove some system menu items from the window if borderstyle = bsDialog to behave the same as standard windows dialogs and delphi dialogs
git-svn-id: trunk@26770 -
This commit is contained in:
parent
e46c3429be
commit
e0a5a6d15b
@ -360,6 +360,7 @@ var
|
|||||||
Params: TCreateWindowExParams;
|
Params: TCreateWindowExParams;
|
||||||
lForm: TCustomForm absolute AWinControl;
|
lForm: TCustomForm absolute AWinControl;
|
||||||
Bounds: TRect;
|
Bounds: TRect;
|
||||||
|
SystemMenu: HMenu;
|
||||||
begin
|
begin
|
||||||
// general initialization of Params
|
// general initialization of Params
|
||||||
PrepareCreateWindow(AWinControl, AParams, Params);
|
PrepareCreateWindow(AWinControl, AParams, Params);
|
||||||
@ -403,6 +404,18 @@ begin
|
|||||||
FinishCreateWindow(AWinControl, Params, false);
|
FinishCreateWindow(AWinControl, Params, false);
|
||||||
|
|
||||||
Result := Params.Window;
|
Result := Params.Window;
|
||||||
|
|
||||||
|
// remove system menu items for bsDialog
|
||||||
|
if lForm.BorderStyle = bsDialog then
|
||||||
|
begin
|
||||||
|
SystemMenu := GetSystemMenu(Result, False);
|
||||||
|
DeleteMenu(SystemMenu, SC_RESTORE, MF_BYCOMMAND);
|
||||||
|
DeleteMenu(SystemMenu, SC_SIZE, MF_BYCOMMAND);
|
||||||
|
DeleteMenu(SystemMenu, SC_MINIMIZE, MF_BYCOMMAND);
|
||||||
|
DeleteMenu(SystemMenu, SC_MAXIMIZE, MF_BYCOMMAND);
|
||||||
|
DeleteMenu(SystemMenu, 1, MF_BYPOSITION); // remove the separator between move and close
|
||||||
|
end;
|
||||||
|
|
||||||
// Beginning with Windows 2000 the UI in an application may hide focus
|
// Beginning with Windows 2000 the UI in an application may hide focus
|
||||||
// rectangles and accelerator key indication. According to msdn we need to
|
// rectangles and accelerator key indication. According to msdn we need to
|
||||||
// initialize all root windows with this message
|
// initialize all root windows with this message
|
||||||
|
Loading…
Reference in New Issue
Block a user