Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
ВнизСистемное меню окна Найти похожие ветки
← →
x2088 © (2011-09-08 22:02) [0]DXE :: WinXP
есть код (ниже), помогите пожалуйста разобраться где тут что, как добавлять свои строки в данное меню - здесь уже есть одна новая строка, с удалением и перехватом я разобрался, желательно в качестве ответа просто добавить копипастой ещё одну строку и разделитель, спасибо
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure OnWMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
public
{ Public declarations }
end;
const
MyButtonID = 100;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.OnWMSysCommand(var Msg: TWMSysCommand);
begin
case Msg.CmdType of
SC_MINIMIZE: ShowMessage("Minimize");
SC_MAXIMIZE: ShowMessage("Maximize");
SC_RESTORE: ShowMessage("Restore");
SC_CLOSE: ShowMessage("Close");
SC_CONTEXTHELP: ShowMessage("Context Help");
MyButtonID: ShowMessage("My Button");
end;
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Item: TMenuItemInfo;
hMenuHandle: HMENU;
begin
hMenuHandle := GetSystemMenu(Handle, false);
If hMenuHandle <> 0
Then
Begin
DeleteMenu(hMenuHandle, SC_RESTORE, MF_BYCOMMAND);
DeleteMenu(hMenuHandle, SC_MAXIMIZE, MF_BYCOMMAND);
DeleteMenu(hMenuHandle, SC_MINIMIZE, MF_BYCOMMAND);
DeleteMenu(hMenuHandle, SC_MOVE, MF_BYCOMMAND);
End;
FillChar(Item, SizeOf(TMenuItemInfo), 0);
with Item do
begin
cbSize := SizeOf(TMenuItemInfo);
fMask := MIIM_TYPE or MIIM_ID;
fType := MFT_STRING;
dwTypeData := "&My menu button";
wID := MyButtonID;
end;
{ Добавим свою кнопку }
InsertMenuItem(GetSystemMenu(Handle, False), SC_CLOSE, False, Item);
end;
end.
← →
x2088 © (2011-09-09 20:01) [1]никто не поможет?
← →
DiamondShark © (2011-09-09 20:29) [2]
> желательно в качестве ответа просто добавить копипастой ещё одну строку
Желательно не пользоваться копипастой, а понимать, что происходит.
Если одна строка уже есть, то ещё одна добавляется так же.
> и разделитель,
MFT_SEPARATOR
Specifies that the menu item is a separator. A menu item separator appears as a horizontal dividing line. The dwTypeData and cch members are ignored. This value is valid only in a drop-down menu, submenu, or shortcut menu.
← →
x2088 © (2011-09-11 11:18) [3]DiamondShark, под копипастой я имел в виду добавить ещё одну строку, естественно у неё будут собственные имена и значения переменных, а для того, чтобы добавить строку даже копипастой - надо знать что копипастить, я учусь на делфи только вторую неделю, учиться на примерах мне на 2 порядка проще, чем по учебнику, где 95% (с) болтология ни о чём, поскольку как доходит дело до реализации - непонятно как это сделать, ни примеров, ни подробных описаний что для чего там в подавляющем большенстве случаев нет
кто-нить хотя бы коменты к
FillChar(Item, SizeOf(TMenuItemInfo), 0);
with Item do
begin
cbSize := SizeOf(TMenuItemInfo);
fMask := MIIM_TYPE or MIIM_ID;
fType := MFT_STRING;
dwTypeData := "&My menu button";
wID := MyButtonID;
end;
{ Добавим свою кнопку }
InsertMenuItem(GetSystemMenu(Handle, False), SC_CLOSE, False, Item);
end;
напишт?
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
да, ссылку на этот форум мне дали и только здесь я остался в игноре, всем спасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c