如何通过一个handle得到相应的对象?(100分)

  • 主题发起人 刘李子
  • 开始时间

刘李子

Unregistered / Unconfirmed
GUEST, unregistred user!
1。如何通过一个handle得到相应的对象(地址)?
2。如何实现鼠标在MENUITEM上移动时STATUSBAR中信息提示??
 
1. 这不太可能,除非你作为这个Process的一部分启动,比如插件或者进程注入之类的机
制,通过FinsControl来强制转换,这涉及的技术很复杂,比较难试验
2. 需要自己写回调函数截获鼠标消息,干脆你用个第三方产品好了,应该比较容易实现的
 
1、没看懂你想实现什么目的。 Handle本身就是一个窗口句柄,对应于一个窗口的“入口”
2、设置MenuItem的Hint属性为 "xxx|aaa"格式,其中"aaa"为你要在状态栏显示的信息
在Application.OnHint事件中写 StatusBar1.SimpleText := Application.Hint;
就行了。
 
handle 是最根本的东东,有了handle 什么都可以做。
 
你的对象不一定是什么?怎么获得。
也许是VCL的TButton,也许是MFC的CButton,也许是其它的你只知道句柄怎么获得
 
1、有了对象的句柄,就可以对它进行操作了
2、MenuItem的Hint属性设为你要显示的提示信息,然后将StatusBar.AutoHint=True就可以
 
xianjun,我的意思就是譬如我知道了一个HMENU,如何得到这个MENU对象的地址指针p,
从而我就可以通过TMENU( pointer(p)^ )来对对象进行访问。
 
你既然已得到了HMenu,就可以使用相应的API对此menuItem进行操作了
如SetMenuItemInfo;SetMenuItemBitmaps等等API
hMenu跟TMenu是两个完全不同的东西
 
TCanvas 可以!!!
procedure TForm1.Button2Click(Sender: TObject);
var
e:TCanvas;
begin
e:=TCanvas.Create ;
e.handle:=Form1.canvas.handle;
end;

 
1.不知道!
2.把Statusbar的Autohint设为True!
 
其实在VC中,如果得到句柄.就可以用相应的函数
getsafehandle转化为对象指针,然后可以进行对象的一切操作
HWND H;
CBUTTON *mbutton ;
mbutton=GetSafeHandle(H);
然后可以
mbutton->setwindowtext()
......
....
 
多人接受答案了。
 
顶部