如何用自己的菜单替换程序的系统菜单,就象winamp3 一样,在任务栏上是自己的菜单? 如何用自己的菜单替换程序的系统菜单,就象winamp3 一样,在任务栏上是自己的菜单? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; procedure FormCreate(Sender: TObject); private procedure WMSysCommand(VAR Message: TWMSysCommand); message WM_SYSCOMMAND; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses Unit2; {$R *.DFM} procedure TForm1.WMSysCommand(var Message: TWMSysCommand); begin Inherited; IF Message.CmdType = $F200 THEN form2.showmodal end; procedure TForm1.FormCreate(Sender: TObject); var s : string; begin s := '&Copyright...'; AppendMenu(GetSystemMenu(Handle, False), MF_STRING, $F200, PChar(s)); end; end. 你可以取得系统菜单的局柄还控制,好久不玩这些东西了好像是getsystemMenu不保证对!现在使用Linux不好测试! GetSystemMenu获得句柄AppendMenu添加菜单到系统菜单ModifyMenu修改然后定义菜单事件 我用 DestroyMenu(getsystemmenu(application.handle,false)); SetMenu(getsystemmenu(application.handle,false),MainPopupMenu.Handle);可以用自己的MainPopupMenu,替换掉系统菜单,但是不能接收任何的消息,请问怎么办?如何使这个菜单生效? 这个问题在N(N>6)个月前已进行过深入探讨~因为现在CSDN没能了查询功能,我也就找不出来了~提示:1、不是单纯使用GetSystemMenu, AppendMenu等函数可以实现的~~2、也不是Inherited WM_SYSCOMMAND这个消息~ http://kingron.myetang.com/document/delphi/wjjsoft_223.html 如何用reportbuild做一张分栏的报表 d7,在控件拖拉阶段,如果不小心某步弄错了,怎么没有Ctrl+z??返回刚才步骤。 THintWindow的问题 请教:有关ADODATASET的一个问题 请教各位~ 请问在delphi中如何调用 vfp的报表设计器. GDI中资源释放-为什么资源释放不掉 <<<< 这个线程问题 300分。 delphi关于TAPI方面的编程,懂的人请近来。 小白中的小白求教 help! 如何用for语句对日期型变量进行循环?
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons; type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
private
procedure WMSysCommand(VAR Message: TWMSysCommand); message WM_SYSCOMMAND;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end; var
Form1: TForm1; implementation
uses Unit2; {$R *.DFM} procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
Inherited;
IF Message.CmdType = $F200 THEN form2.showmodal
end; procedure TForm1.FormCreate(Sender: TObject);
var s : string;
begin
s := '&Copyright...';
AppendMenu(GetSystemMenu(Handle, False), MF_STRING, $F200, PChar(s));
end; end.
getsystemMenu不保证对!现在使用Linux不好测试!
AppendMenu添加菜单到系统菜单
ModifyMenu修改
然后定义菜单事件
DestroyMenu(getsystemmenu(application.handle,false));
SetMenu(getsystemmenu(application.handle,false),MainPopupMenu.Handle);可以用自己的MainPopupMenu,替换掉系统菜单,但是不能接收任何的消息,请问怎么办?如何使这个菜单生效?
这个问题在N(N>6)个月前已进行过深入探讨~
因为现在CSDN没能了查询功能,我也就找不出来了~提示:
1、不是单纯使用GetSystemMenu, AppendMenu等函数可以实现的~~
2、也不是Inherited WM_SYSCOMMAND这个消息~