请教高手:如何在点击菜单执行完onclick事件后,焦点仍然停留在当前菜单上(100分)

  • 主题发起人 主题发起人 samz
  • 开始时间 开始时间
S

samz

Unregistered / Unconfirmed
GUEST, unregistred user!
我的onclick事件就是要在当前菜单上改变一下当前属性,比
如说checked:=true;
再请教一个问题,在没有点击菜单时,如何知道焦点停留在
哪一个菜单上?
 
怎么没有高手?
 
procedure TForm1.Button1Enter(Sender: TObject);
var
FocusWnd: HWND; // this will hold the window handle
ClassName: array[0..255] of char; // this will hold the class name
begin
{get the handle of the window that currently has input focus}
FocusWnd:=GetFocus;

{get the class name of this window}

GetClassName(FocusWnd,ClassName,255);

{display the class name of the window with input focus}
Label2.Caption:=string(ClassName)+' has input focus.'
end;

 
不可能,除非你重改菜单
 
自画时可以在 OnDrawItem 中进行记录,但你必须自己实现菜单显示:

procedure TForm1.aaaaaa1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
//菜单显示
if Selected then label1.caption:='AAA'
end;

procedure TForm1.bbbbb1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
//菜单显示
if Selected then label1.caption:='bbbbb'
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部