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

Вниз

Системное меню окна   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
15-1314348069
androidios
2011-08-26 12:41
2011.12.18
Нужно перевести 2 функции с php на delphi за $


2-1315587791
Rucosinus
2011-09-09 21:03
2011.12.18
Просмотр шрифтов из папки


2-1315466387
Maxpch21
2011-09-08 11:19
2011.12.18
матрица


15-1315168191
Юрий
2011-09-05 00:29
2011.12.18
С днем рождения ! 5 сентября 2011 понедельник


2-1315307915
alexx777
2011-09-06 15:18
2011.12.18
сменить пользователя