MsgShellHook
.程序集变量
lpPrevWndProc.子程序
__启动窗口_创建完毕
.局部变量
.局部变量
sss,
文本型sss
=
“关于窗口”
开始拦截
()
菜单句柄
=
API_取系统菜单句柄
(_启动窗口.取窗口句柄
(),
0)
API_添加菜单项
(菜单句柄,
2048,
0,
0)
'
加入分隔条
MF_SEPARATOR
常量为
0x800
API_添加菜单项
(菜单句柄,
0,
666,
取变量数据地址
(sss))
'
子程序1
().子程序
子程序1信息框
(“关于窗口”,
0,
“关于”).子程序
开始拦截MsgShellHook
=
API_RegisterWindowMessage
(“SHELLHOOK”)
API_RegisterShellHookWindow
(取窗口句柄
())
lpPrevWndProc
=
API_SetWindowLong
(取窗口句柄
(),
-4,
到整数
(&回调函数)).子程序
回调函数,
整数型
.参数
Hwnd
.参数
uMsg
怎样制作右键菜单?编辑右键菜单的方法与普通的窗口菜单一样,(如果你不希望右键菜单在芦仿巧窗口菜单栏中显示,必须把该菜单的可视属性设置为假)。在右键被按下时,用“d出菜单()”来d出你设置好的右键菜单。例:在程序中设置了一名为“右键”的菜单。希望当鼠标右键在窗口上按下时显示,可添加如下子程序:
子程序:__启动窗口_鼠标右键被按下
返回值类型:逻辑型
参数:横向位置 数据类型:整数型
参数:纵向位置 数据类型:整数型
参数:功能键状态 数据类型:整数型
d出菜单 ( 右键 , , )
“d出菜单”的介绍:调用格式: 〈无返回值〉 对象.d出菜单 (菜单 欲d出的菜单,[整数型 水平显示位置],[整数型 垂直显示位置]) - 系统核心支持库->窗口
英陪键文名称:PopupMenu
用于在窗口上的当前鼠标位置或指定坐标位置显示d出式菜单,如果调用对象为窗口组件,则自动使用其所在的窗口。本命令为初级对象成员命令。
参数<1>的名称为“欲d出的菜单”,类型为“菜单(menu)”。指定菜单内必须包含有子菜单,且所处窗口必须与调用对象窗口一致。
参数<2>的名称为“水平显示位置”,类型为“整数型(int)”,可以被省略。单位为像素点,相对于屏幕左边。如果被省略,将自动使用当前鼠标位置。
参数<3>的名称为“垂直显示位置”,类型为“整数型(int)”,可以被省略。单位为像素点,相对于屏幕顶边。如果被省略,将自动使用当前鼠标位置。
3、如何禁止一个菜单项,使它可以被看见但不可以被选择?
在菜单编辑器中有一个选择框名为“允许 *** 作”,保持该项为空即不选,则相应菜单项就被禁止。
如果是在程序大困运行中动态设置,可以用以下代码(设菜单名称为“复制”):
复制.禁止=真使该菜单处于禁止状态,不可 *** 作。
复制.禁止=假取消菜单的禁止,使该菜单可以 *** 作
.DLL命令 _取菜单句柄, 整数型, "user32", "GetMenu", , 取得窗口中一个菜单的句柄 依附于指定窗口的一个菜单的句柄(如果有菜单);否则返回零.参数 窗口句柄, 整数型, , 窗口句柄。对于vb,这应该是一个窗体句柄。注意可能不是子窗口的句柄
.DLL命令 _创建菜单, 整数型, "user32", "CreatePopupMenu", , 创建一个空的菜单,成功返回菜单句柄,失败返回0
.DLL命令 _添加菜单项, 整数型, , "AppendMenuA", , 在指定的菜单里添加一个菜单项 非零表示成功,零表示失败。会设置GetLastError
.参数 菜单句柄, 整宽闹前数型, , 菜单句柄
.参数 菜单常数标志, 整数型, , 参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数
.参数 新菜单条目ID, 整数型, , 指定菜单条目的新命令ID。如果在wFlags参数中指定了MF_POPUP字段,那么这应该是指弯局向一个d出式菜单的句柄
.参数 标志值, 文本型, , (相应的vb声明见注解),如果在wFlags参数中指定了MF_STRING标志,这就代表在菜单中设置的字串。如设置了MF_BITMAP标志,这就代表一个Long型变量,其中包含了一个位图句柄。如设置了MF_OWNERDRAW,这个值就会包括在DRAWITEMSTRUCT和MEASUREITEMSTRUCT结构中,在条目需要重画的时候由windows发送出去
.DLL命令 SetWindowLong, 整数型慎清, , "SetWindowLongA"
.参数 hwnd, 整数型
.参数 nindex, 整数型
.参数 hnew, 整数型
.DLL命令 CallWindowProc, 整数型, "user32", "CallWindowProcA", , 将消息传答窗口函数
.参数 lpPrevWndFunc, 整数型
.参数 hwnd, 整数型
.参数 msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 GetWindowLong, 整数型, "user32", "GetWindowLongA", , 从指定窗口的结构中取得信息 由nIndex决定。零表示出错。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲为其获取信息的窗口的句柄
.参数 属性, 整数型, , 欲取回的信息,可以是下述任何一个常数:GWL_EXSTYLE:扩展窗口样式GWL_STYLE:窗口样式GWL_WNDPROC:该窗口的窗口函数的地址GWL_HINSTANCE:拥有窗口的实例的句柄GWL_HWNDPARENT:该窗口之父的句柄。不要用SetWindowWord来改变这个值GWL_ID:对话框中一个子窗口的标识符GWL_USERDATA:含义由应用程序规定DWL_DLGPROC:这个窗口的对话框函数地址DWL_MSGRESULT:在对话框函数中处理的一条消息返回的值DWL_USER:含义由应用程序规定
.DLL命令 GetMenuString, 整数型, "user32", "GetMenuStringA"
.参数 hMenu, 整数型
.参数 wIDItem, 整数型
.参数 lpString, 文本型
.参数 nMaxCount, 整数型
.参数 wFlag, 整数型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)