o*o : 关于“如何在程序中实现截获WINDOWS的开始按钮句柄,在鼠标点击时弹出自己的菜单?”这一问题我需要源码。我用100分来换,可以吗?(40分)

  • 主题发起人 主题发起人 chensh
  • 开始时间 开始时间
C

chensh

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]关于“如何在程序中实现截获WINDOWS的开始按钮句柄,在鼠标点击时弹出自己的菜单?”
这一问题我需要源码。我用100分来换,可以吗?

EMAIL : chensh618@yahoo.com.cn
 
谁能帮帮我呀!100分不够可以再加。
 
关注这个问题,我也想实现这个功能。
 
我觉得这个问题没必要,用个什么优化大师之类的把那些“帮助”,“设置”,“文档”
之类的隐藏掉,然后那条程序菜单就随你怎么建了
 
楼上: 我想通过编程来实现自已的菜单。
 
我也在考虑这个问题,只要得到该句柄就好解决了
 
to hurryman: 句柄如下,如何解决呢?

var
h : hwnd;
begin
h := FindWindowEx(GetDesktopWindow,0,'Button',nil);
end;
 
你现在该有答案了吧
 
现在还没有答案,麻烦大家帮帮忙。急.
 
[blue]
兄弟,不用着急,下面的代码肯定对你有用(完完全全的源代码呀,直接粘贴吧,记得给分呀:-)
[/blue]
代码:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    procedure ButtonMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
    procedure ButtonMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
    procedure FormDestroy(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  btnNewStart:TButton;
  Shell_TrayWnd:Hwnd;
  SystemStartButton:Hwnd;
  MouseClicked:Boolean=False;
implementation

{$R *.DFM}
procedure TForm1.ButtonMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
begin
  if PtInRect(btnNewStart.BoundsRect,Point(X,Y)) and MouseClicked then
  begin
[red]随便加入你自己的代码吧[/red]
代码:
  end;
  MouseClicked:=False;
end;

procedure TForm1.ButtonMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
begin
  if PtInRect(btnNewStart.BoundsRect,Point(X,Y)) then
    MouseClicked:=True
  else
    MouseClicked:=False;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ShowWindow(SystemStartButton,SW_SHOW);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  Shell_TrayWnd:=FindWindow('Shell_TrayWnd','');
  SystemStartButton:=GetWindow(Shell_TrayWnd,GW_CHILD);
  ShowWindow(SystemStartButton,SW_HIDE);
  btnNewStart:=TButton.CreateParented(Shell_TrayWnd);
  btnNewStart.Caption := '新开始';
  btnNewStart.OnMouseUp := ButtonMouseUp;
  btnNewStart.OnMouseDown := ButtonMouseDown;
  ShowWindow(btnNewStart.handle,SW_SHOW);
end;

end.
 
manfeel, thank you!
 
接受答案了.
 
后退
顶部