关于HELP_CONTEXTMENU 和 Help_WM_Help参数后面的数组怎样付值的问题? (急等)LeeChange看看啊 ( 积分: 100 )

  • 主题发起人 主题发起人 草原牧歌
  • 开始时间 开始时间

草原牧歌

Unregistered / Unconfirmed
GUEST, unregistred user!
在vc++中使用ControlID,ContextID为成对的双字(DWORD)数组<br>在Delphi中控件没有ControlID,那么对于这个怎么办?<br>a:&nbsp;array[0..5]of&nbsp;dword;<br>a[0]:=?<br>a[1]:=ContextID?<br>...<br>winhelp(handle,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;helppath,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Help_ContextMenu{Help_WM_Help},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD(@a))<br>请问a数组怎么赋值?
 
HELP_CONTEXTMENU(What&nbsp;is&nbsp;this)&nbsp;显示所选窗口的帮助菜单,然后在弹出式菜单中显示所选组件的主题&nbsp;双字的数组地址,其中第一字为标识符,第二个为主题的上下文号&nbsp;<br>HELP_WM_HELP&nbsp;在一个弹出式窗口中显示由hwnd标识组件的主题&nbsp;双字的数组地址,其中第一个字为组件的标识符,第二个为主题的上下文号
 
我查过全文检索,csdn与百度和google了,没找到
 
不知道.name属性行不行,回去试一试<br>决不是handle(HWND)
 
手头机器没有VC的环境,不太敢答哎.<br>印象中VC里跟帮助有关的几个ID也不是凭空来的,而是在开发环境里设了之后保存在资源文件里的吧.只不过保存的ID可以被程序和帮助公用罢了.<br>如果真象我记的这样的话,在Delphi里也就好办了,把帮助文件里的值挑出来,随便放在什么地方,比如控件的HelpContext里.
 
问题已解决:<br>a:&nbsp;array[0..5]of&nbsp;dword;<br>a[0]:=&nbsp;WORD(TWinControl.Handle);//这个是控件的句柄,要使用低字的值<br>a[1]:=ContextID?<br>...<br>winhelp(handle,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;helppath,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Help_ContextMenu{Help_WM_Help},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD(@a))<br>另:要想使TPanel控件响应WM_CONTEXTMENU这个消息,需要去掉窗口ex_style的<br>WS_EX_CONTROLPARENT&nbsp;这个条目。<br>使用GetWindowLong()&nbsp;GWL_EX_STYLE得到Ex_style的值&nbsp;<br>使用SetWindowLong()&nbsp;ex_style&nbsp;and&nbsp;not&nbsp;ws_excontrolparent<br>这时你就可以用鼠标右键获得“What&nbsp;is&nbsp;this?”这个弹出式菜单了
 
谢谢LeeChange的光临,问题已解决
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
551
import
I
I
回复
0
查看
680
import
I
I
回复
0
查看
763
import
I
后退
顶部