易语言创建弹出菜单源码
系统结构:拦截消息,自创菜单,API弹出菜单,插入菜单项,取项目标题,取菜单项目数,删除菜单项目,创建空白弹出式菜单_,AppendMenu,添加菜单项,插入菜单条目_,创建菜单,GetMenuItemCount,SetMenu,DrawMenuBar,SetForegroundWindow,TrackPopupMenu,取子菜单句柄,GetMenuString,RemoveMenu,DestroyMenu,SetWindowLong,CallWindowProc,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 拦截消息
| |
| |------ 自创菜单
| |
| |------ API弹出菜单
| |
| |------ _按钮1_被单击
| |
| |------ 插入菜单项
| |
| |------ 取项目标题
| |
| |------ 取菜单项目数
| |
| |------ 删除菜单项目
| |
| |------ __启动窗口_将被销毁
| |
| |
======调用的Dll
| |
| |---[dll]------ 创建空白弹出式菜单_
| |
| |---[dll]------ AppendMenu
| |
| |---[dll]------ 添加菜单项
| |
| |---[dll]------ 插入菜单条目_
| |
| |---[dll]------ 创建菜单
| |
| |---[dll]------ GetMenuItemCount
| |
| |---[dll]------ SetMenu
| |
| |---[dll]------ DrawMenuBar
| |
| |---[dll]------ SetForegroundWindow
| |
| |---[dll]------ TrackPopupMenu
| |
| |---[dll]------ 取子菜单句柄
| |
| |---[dll]------ GetMenuString
| |
| |---[dll]------ RemoveMenu
| |
| |---[dll]------ DestroyMenu
| |
| |---[dll]------ SetWindowLong
| |
| |---[dll]------ CallWindowProc
调用的DLL命令:
.DLL命令 创建空白弹出式菜单_, 整数型, "user32.dll", "CreatePopupMenu"
.DLL命令 AppendMenu, 整数型, "user32.dll", "AppendMenuA", , 非零表示成功,零表示失败
.参数 菜单句柄, 整数型, , hMenu,菜单句柄
.参数 菜单常数标志, 整数型, , wFlags,参见相关帮助
.参数 新菜单条目ID, 整数型, , wIDNewItem,指定菜单条目的新命令ID
.参数 标志值, 文本型, , lpNewItem,参见相关帮助
.DLL命令 添加菜单项, 逻辑型, , "InsertMenuA"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 标志, 整数型
.参数 ID, 整数型
.参数 标题, 文本型
.DLL命令 插入菜单条目_, 整数型, "user32.dll", "InsertMenuA"
.参数 菜单句柄, 整数型, , hMenu,菜单的句柄
.参数 插入点标志符, 整数型, , nPosition,参见相关帮助
.参数 常数标志, 整数型, , wFlags,常数标志的组合,参考ModifyMenu
.参数 新条目ID, 整数型, , wIDNewItem,指定菜单条目的新菜单ID
.参数 条目内容, 文本型, , lpNewItem,由wFlags参数决定
.DLL命令 创建菜单, 整数型, "user32", "CreateMenu", , 创建新菜单 如成功则返回新的顶级菜单的句柄;零意味着错误
.DLL命令 GetMenuItemCount, 整数型, "user32", "GetMenuItemCount", , 返回菜单中条目(菜单项)的数量 菜单中的条目数量;-1意味着出错。会设置GetLastError
.参数 hMenu, 整数型, , 目标菜单的句柄;
.DLL命令 SetMenu, 整数型, "user32", "SetMenu", , 设置窗口菜单 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 窗口的句柄
.参数 hMenu, 整数型, , 窗口的新菜单的句柄;
.DLL命令 DrawMenuBar, 整数型, "user32", "DrawMenuBar", , 为指定的窗口重画菜单。用api函数改变一个窗口菜单的内容时,就要用到这个函数 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 要重画菜单栏的窗口的句柄;
.DLL命令 SetForegroundWindow, 整数型, "user32", "SetForegroundWindow", , 将窗口设为系统的前台窗口。这个函数可用于改变用户目前正在操作的应用程序 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 带到前台的窗口;
.DLL命令 TrackPopupMenu, 整数型, "user32", "TrackPopupMenu", , 在屏幕的任意地方显示一个弹出式菜单 非零表示成功,零表示失败。会设置GetLastError
.参数 hMenu, 整数型, , 弹出式菜单的句柄
.参数 wFlags, 整数型, , 位置标志和鼠标追踪标志的组合,见下表;位置标志:说明;TPM_CENTERALIGN:菜单在指定位置水平居中;TPM_LEFTALIGN:菜单的左侧置于水平x坐标处;TPM_RIGHTALIGN:菜单的右侧置于水平x坐标处;TPM_LEFTBUTTON:鼠标左键标准运作方式;TPM_RIGHTBUTTON:用鼠标右键进行菜单追踪
.参数 x, 整数型, , 这个点指定了弹出式菜单在屏幕坐标系统中的位置
.参数 y, 整数型, , 同上
.参数 nReserved, 整数型, , 未使用,设为零
.参数 hwnd, 整数型, , 用于接收弹出式菜单命令的窗口的句柄。应该使用窗体的窗口句柄——窗体中有一个菜单能象弹出式菜单那样接收相同的命令ID集
.参数 lprc, 整数型, , Rect,用屏幕坐标定义的一个矩形,如用户在这个矩形的范围内单击,则弹出式菜单不会关闭。如单击弹出式菜单之外的任何一个地方,则会关闭菜单。可以设为NULL;
.DLL命令 取子菜单句柄, 整数型, , "GetSubMenu"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.DLL命令 GetMenuString, 整数型, "user32", "GetMenuStringA", , 取得指定菜单条目的字串 在lpString中返回的字串的长度(不包括空中止字符)。零意味着出错
.参数 hMenu, 整数型, , 菜单句柄
.参数 wIDItem, 整数型, , 欲接收的菜单条目的标识符。如果在wFlags参数中设置了MF_BYCOMMAND标志,这个参数就用于指定要改变的菜单条目的命令ID。如果设置的是MF_BYPOSITION标志,这个参数就用于指定条目在菜单中的位置(第一个条目的位置为0)
.参数 lpString, 文本型, , 指定一个预先定义好的字串缓冲区,以便为菜单条目装载字串
.参数 nMaxCount, 整数型, , 载入lp缓冲区中的最大字符数量+1
.参数 wFlag, 整数型, , 常数MF_BYCOMMAND或MF_BYPOSITION,取决于wID参数的设置;
.DLL命令 RemoveMenu, 整数型, "user32", "RemoveMenu", , 删除指定的菜单条目。如删除的条目属于一个弹出式菜单,那么这个函数不会同时删除弹出式菜单。首先应该用GetSubMenu函数取得弹出式菜单的句柄,再在以后将其删除 非零表示成功,零表示失败。会设置GetLastError
.参数 hMenu, 整数型, , 菜单的句柄
.参数 nPosition, 整数型, , 欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零)
.参数 wFlags, 整数型, , 常数MF_BYCOMMAND或MF_BYPOSITION,取决于nPosition参数;
.DLL命令 DestroyMenu, 整数型, "user32", "DestroyMenu", , 删除指定的菜单。如菜单属于另一个菜单的一部分,或直接分配给一个窗口,那么菜单会在窗口清除后被自动删除 非零表示成功,零表示失败。会设置GetLastError
.参数 hMenu, 整数型, , 欲删除菜单的句柄;
.DLL命令 SetWindowLong, 子程序指针, , "SetWindowLongA"
.参数 窗口句柄, 整数型
.参数 要置的特征, 整数型
.参数 新特征, 子程序指针, , 仅易语言3.0支持
.DLL命令 CallWindowProc, 整数型, , "CallWindowProcA"
.参数 程序指针, 子程序指针
.参数 窗口句柄, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
易语言VB2易V0009源码,转换VB函数,删除函数编辑框空行,删除编辑框空行,转换VB函数_2,转换VB常数,转换VB自定义数据类型,转换VB子程序,转换VB全局变量,转换VB局部变量,子程序1,转换VB函数2...
易语言-正文提取源码,正文提取,特殊字符过滤,取汉字个数_正则法,标准清除HTML标签,纯净清除HTML标签...
易语言SendInput源码,SendInput,模拟键盘_,模拟鼠标移动_,模拟鼠标单击_,SendUnicode,SendAnsi,SendKeyS,取变量地址_字节集型_,指针到短整数_,字节集到短整数_,AnsiToUnicode,模拟键盘动作_,模拟鼠标动作_,VkKeyScanW,GetKeyState,RtlInitAnsiString,RtlFreeU...
易语言SDK窗口源码,SDK窗口,WndProc,子程序_菜单初始化,HIWORD,LOWORD,子程序_处理命令消息,GetModuleHandle,LoadIcon,LoadCursor,GetStockObject,RegisterClass,MessageBox,CreateWindowEx,ShowWindow,UpdateWindow,GetMessage,TranslateMessage,DispatchMes...
易语言API创建暂停进程进行DLL注入源码,API创建暂停进程进行DLL注入,GetCmdLine,命令行缓冲区_,取文本内容长度_,CopyMemory,SN_CreateProcessA,SN_InjectDllA...
易语言api创建多层目录源码,api创建多层目录,api_创建多层目录...
易语言高斯算法源码,高斯算法...
易语言高斯赛德尔迭代法演示源码,高斯赛德尔迭代法演示,DBLX...
易语言雪花屏保源码,雪花屏保,Rnd,InitP,GetContrast,GetDC,GetPixel,SetPixel,ReleaseDC,InvalidateRect...