易语言置标题菜单源码
系统结构:创建窗口,窗口创建完毕,添加菜单,添加子菜单,消息处理,消息循环,API_信息框,置标题栏菜单,置单个菜单,普通状态,点燃状态,按下状态,初始化,画文本,文本居中,是否在矩形内,画图片,文本_取空白文本,整数_到文本,文本_取指针,字节集_取指针,字节集_取长度,字节集_取空白,动态调用子程序,释放字节流,创建字节流,取字节流指针,取字节流尺寸,取出字节集,RegisterClassEx,CreateWindowEx,GetSystemMetrics,GetModuleHandle_整数,LoadIcon,PostQuitMessage,LoadCursor,GetMessage,TranslateMessage,DispatchMessage,DefWindowProc,CallWindowProc,GetMenu,CreateMenu,CreatePopupMenu,AppendMenu,SetMenu,GetSubMenu,GetMenuItemCount,MessageBox,GetActiveWindow,GetTitleBarInfo,SendMessage,GdiplusStartup,GetWindowDC,SetBkMode,CreateFont,SelectObject,DeleteObject,ReleaseDC,GdiplusShutdown,TextOut,StrokePath,lstrlen,GdipCreateFromHDC,GdipLoadImageFromStream,GdipGetImageDimension,GdipDrawImageRect,GdipDisposeImage,GdipDeleteGraphics,GlobalFree,GlobalAlloc,CreateStreamOnHGlobal,lstrcpyn_字节集,RtlMoveMemory_整数,GlobalLock,GlobalUnlock,GlobalSize,GetMenuString,LocalAlloc,FillMemory,LocalFree,动态调用子程序_API,GetProcAddress,lstrcpyn_文本型,GetModuleHandle_文本,DrawMenuBar,TrackPopupMenu,GetWindowRect,IsMenu,
======启动程序集
| |
| |------ _启动子程序
| |
| |------ 创建窗口
| |
| |------ 窗口创建完毕
| |
| |------ 添加菜单
| |
| |------ 添加子菜单
| |
| |------ 消息处理
| |
| |------ 消息循环
| |
| |------ API_信息框
| |
| |------ 置标题栏菜单
| |
| |------ 置单个菜单
| |
| |------ 普通状态
| |
| |------ 点燃状态
| |
| |------ 按下状态
| |
| |------ 初始化
| |
| |------ 画文本
| |
| |------ 文本居中
| |
| |------ 是否在矩形内
| |
| |------ 画图片
| |
| |------ 文本_取空白文本
| |
| |------ 整数_到文本
| |
| |------ 文本_取指针
| |
| |------ 字节集_取指针
| |
| |------ 字节集_取长度
| |
| |------ 字节集_取空白
| |
| |------ 动态调用子程序
| |
| |
======字节流
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 释放字节流
| |
| |------ 创建字节流
| |
| |------ 取字节流指针
| |
| |------ 取字节流尺寸
| |
| |------ 取出字节集
| |
| |
======调用的Dll
| |
| |---[dll]------ RegisterClassEx
| |
| |---[dll]------ CreateWindowEx
| |
| |---[dll]------ GetSystemMetrics
| |
| |---[dll]------ GetModuleHandle_整数
| |
| |---[dll]------ LoadIcon
| |
| |---[dll]------ PostQuitMessage
| |
| |---[dll]------ LoadCursor
| |
| |---[dll]------ GetMessage
| |
| |---[dll]------ TranslateMessage
| |
| |---[dll]------ DispatchMessage
| |
| |---[dll]------ DefWindowProc
| |
| |---[dll]------ CallWindowProc
| |
| |---[dll]------ GetMenu
| |
| |---[dll]------ CreateMenu
| |
| |---[dll]------ CreatePopupMenu
| |
| |---[dll]------ AppendMenu
| |
| |---[dll]------ SetMenu
| |
| |---[dll]------ GetSubMenu
| |
| |---[dll]------ GetMenuItemCount
| |
| |---[dll]------ MessageBox
| |
| |---[dll]------ GetActiveWindow
| |
| |---[dll]------ GetTitleBarInfo
| |
| |---[dll]------ SendMessage
| |
| |---[dll]------ GdiplusStartup
| |
| |---[dll]------ GetWindowDC
| |
| |---[dll]------ SetBkMode
| |
| |---[dll]------ CreateFont
| |
| |---[dll]------ SelectObject
| |
| |---[dll]------ DeleteObject
| |
| |---[dll]------ ReleaseDC
| |
| |---[dll]------ GdiplusShutdown
| |
| |---[dll]------ TextOut
| |
| |---[dll]------ StrokePath
| |
| |---[dll]------ lstrlen
| |
| |---[dll]------ GdipCreateFromHDC
| |
| |---[dll]------ GdipLoadImageFromStream
| |
| |---[dll]------ GdipGetImageDimension
| |
| |---[dll]------ GdipDrawImageRect
| |
| |---[dll]------ GdipDisposeImage
| |
| |---[dll]------ GdipDeleteGraphics
| |
| |---[dll]------ GlobalFree
| |
| |---[dll]------ GlobalAlloc
| |
| |---[dll]------ CreateStreamOnHGlobal
| |
| |---[dll]------ lstrcpyn_字节集
| |
| |---[dll]------ RtlMoveMemory_整数
| |
| |---[dll]------ GlobalLock
| |
| |---[dll]------ GlobalUnlock
| |
| |---[dll]------ GlobalSize
| |
| |---[dll]------ GetMenuString
| |
| |---[dll]------ LocalAlloc
| |
| |---[dll]------ FillMemory
| |
| |---[dll]------ LocalFree
| |
| |---[dll]------ 动态调用子程序_API
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ lstrcpyn_文本型
| |
| |---[dll]------ GetModuleHandle_文本
| |
| |---[dll]------ DrawMenuBar
| |
| |---[dll]------ TrackPopupMenu
| |
| |---[dll]------ GetWindowRect
| |
| |---[dll]------ IsMenu
调用的DLL命令:
.DLL命令 RegisterClassEx, 整数型, "user32", "RegisterClassExA", ,
.参数 pcWndClassEx, WNDCLASSEX
.DLL命令 CreateWindowEx, 整数型, "user32", "CreateWindowExA", , 建立窗口
.参数 dwExStyle, 整数型
.参数 lpClassName, 文本型
.参数 lpWindowName, 文本型
.参数 dwStyle, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 nWidth, 整数型
.参数 nHeight, 整数型
.参数 hWndParent, 整数型
.参数 hMenu, 整数型
.参数 hInstance, 整数型
.参数 lpParam, 整数型
.DLL命令 GetSystemMetrics, 整数型, "user32", "GetSystemMetrics"
.参数 nIndex, 整数型
.DLL命令 GetModuleHandle_整数, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 整数型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 LoadIcon, 整数型, "user32", "LoadIconA", , 从指定的模块或应用程序实例中载入一个图标。其中,LoadIconBynum是LoadIcon函数的类型security声明 执行成功则返回已载入的图标的句柄;零表示失败。会设置GetLastError
.参数 实例句柄, 整数型
.参数 图标标识, 整数型
.DLL命令 PostQuitMessage, , "user32", "PostQuitMessage", , 通知WINDOWS线索将中断
.参数 nExitCode, 整数型
.DLL命令 LoadCursor, 整数型, "user32", "LoadCursorA", , 从指定的模块或应用程序实例中载入一个鼠标指针。LoadCursorBynum是LoadCursor函数的类型security声明 执行成功则返回已载入的指针的句柄;零表示失败。在Windows ; 95 和Win16环境中,这个函数只能载入标准尺寸的图标
.参数 实例句柄, 整数型, , 一个DLL的模块句柄;或者一个实例句柄,指定包含了鼠标指针的可执行程序
.参数 鼠标指针标识, 整数型, , 作为一个字串,指定欲载入的指针资源。作为一个长整数值,指定欲载入的资源ID;或者设置一个常数,代表某幅固有系统指针。如装载的是一个固有系统指针,注意hInstance参数应设为零。在api32.txt文件中以前缀IDC_ 作为标志;
.DLL命令 GetMessage, 整数型, "user32", "GetMessageA", , 从线索消息队列中返回一条消息
.参数 lpMsg, MSG
.参数 hwnd, 整数型
.参数 wMsgFilterMin, 整数型
.参数 wMsgFilterMax, 整数型
.DLL命令 TranslateMessage, 整数型, "user32", "TranslateMessage", , 转换虚拟关键字消息
.参数 lpMsg, MSG
.DLL命令 DispatchMessage, 整数型, "user32", "DispatchMessageA", , 向窗口发送消息
.参数 lpMsg, MSG
.DLL命令 DefWindowProc, 整数型, "user32", "DefWindowProcA", , 调用缺省窗口过程
.参数 hwnd, 整数型
.参数 wMsg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 CallWindowProc, 子程序指针, "user32", "CallWindowProcA"
.参数 前一窗口函数地址, 子程序指针
.参数 窗口句柄, 整数型
.参数 消息值, 整数型
.参数 附加参数1, 整数型
.参数 附加参数2, 整数型
.DLL命令 GetMenu, 整数型, "user32", "GetMenu"
.参数 hwnd, 整数型
.DLL命令 CreateMenu, 整数型, "user32", "CreateMenu"
.DLL命令 CreatePopupMenu, 整数型, "user32", "CreatePopupMenu"
.DLL命令 AppendMenu, 整数型, "user32", "AppendMenuA"
.参数 hMenu, 整数型
.参数 wFlags, 整数型
.参数 wIDNewItem, 整数型
.参数 lpNewItem, 文本型
.DLL命令 SetMenu, 整数型, "user32", "SetMenu"
.参数 hwnd, 整数型
.参数 hMenu, 整数型
.DLL命令 GetSubMenu, 整数型, "user32", "GetSubMenu"
.参数 hMenu, 整数型
.参数 nPos, 整数型
.DLL命令 GetMenuItemCount, 整数型, "user32", "GetMenuItemCount"
.参数 hMenu, 整数型
.DLL命令 MessageBox, 整数型, "user32", "MessageBoxA", , 建立消息框窗体
.参数 hwnd, 整数型
.参数 lpText, 文本型
.参数 lpCaption, 文本型
.参数 wType, 整数型
.DLL命令 GetActiveWindow, 整数型, "user32", "GetActiveWindow", , 获得活动窗口的句柄
.DLL命令 GetTitleBarInfo, 整数型, "user32.dll", "GetTitleBarInfo"
.参数 窗口句柄, 整数型, , hwnd
.参数 标题栏信息结构, 标题栏信息, , pti
.DLL命令 SendMessage, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型security”声明形式 由具体的消息决定
.参数 窗口句柄, 整数型, , 要接收消息的那个窗口的句柄
.参数 信息值, 整数型, , 消息的标识符
.参数 参数一, 整数型, , 具体取决于消息
.参数 参数二, 整数型, , 具体取决于消息;
.DLL命令 GdiplusStartup, 整数型, "gdiplus.dll", "GdiplusStartup"
.参数 token, 整数型, 传址
.参数 inputbuf, GdiplusStartupInput
.参数 outputbuf, 整数型
.DLL命令 GetWindowDC, 整数型, "user32", "GetWindowDC", , 获取窗口全部设备场景
.参数 hwnd, 整数型, , 将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC;
.DLL命令 SetBkMode, 整数型, "gdi32", "SetBkMode"
.参数 hdc, 整数型
.参数 nBkMode, 整数型
.DLL命令 CreateFont, 整数型, "gdi32", "CreateFontA", 公开, 用指定的属性创建一种逻辑字体 执行成功则返回逻辑字体的句柄,零表示失败。会设置GetLastError
.参数 nHeight, 整数型, , IfHeight
.参数 nWidth, 整数型, , IfWidth
.参数 nEscapement, 整数型, , IfEscapement
.参数 nOrientation, 整数型, , IfOrientation
.参数 fnWeight, 整数型, , IfWeight
.参数 fdwItalic, 整数型, , IfItalic
.参数 fdwUnderline, 整数型, , IfUnderline
.参数 fdwStrikeOut, 整数型, , IfStrikeOut
.参数 fdwCharSet, 整数型, , IfCharSet
.参数 OutputPrecision, 整数型, , IfOutputPrecision
.参数 ClipPrecision, 整数型, , IfClipPrecision
.参数 Quality, 整数型, , IfQuality
.参数 PitchAndFamily, 整数型, , IfPitchAndFamily
.参数 lpszFace, 文本型, , IfFaceName;
.DLL命令 SelectObject, 整数型, "gdi32", "SelectObject"
.参数 hdc, 整数型
.参数 hObject, 整数型
.DLL命令 DeleteObject, 整数型, "gdi32", "DeleteObject", 公开, 用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放 非零表示成功,零表示失败
.参数 对象句柄, 整数型, , 一个GDI对象的句柄;
.DLL命令 ReleaseDC, 整数型, "user32", "ReleaseDC", , 释放由调用GetDC或GetWindowDC函数获取的指定设备场景。它对类或私有设备场景无效(但这样的调用不会造成损害) 执行成功为1,否则为0
.参数 hwnd, 整数型, , 要释放的设备场景相关的窗口句柄
.参数 hdc, 整数型, , 要释放的设备场景句柄;
.DLL命令 GdiplusShutdown, , "gdiplus.dll", "GdiplusShutdown"
.参数 token, 整数型
.DLL命令 TextOut, 整数型, "gdi32", "TextOutA"
.参数 hdc, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 lpString, 文本型
.参数 nCount, 整数型
.DLL命令 StrokePath, 整数型, "gdi32", "StrokePath"
.参数 hdc, 整数型
.DLL命令 lstrlen, 整数型, "kernel32.dll", "lstrlenA", 公开, 取文本内容长度_
.参数 文本, 文本型, , Ptr
.DLL命令 GdipCreateFromHDC, 整数型, "GdiPlus.dll", "GdipCreateFromHDC"
.参数 hdc, 整数型
.参数 graphics, 整数型, 传址
.DLL命令 GdipLoadImageFromStream, 整数型, "GdiPlus.dll", "GdipLoadImageFromStream"
.参数 stream, 整数型
.参数 image, 整数型, 传址
.DLL命令 GdipGetImageDimension, 整数型, "GdiPlus.dll", "GdipGetImageDimension"
.参数 image, 整数型
.参数 width, 小数型, 传址
.参数 height, 小数型, 传址
.DLL命令 GdipDrawImageRect, 整数型, "GdiPlus.dll", "GdipDrawImageRect"
.参数 graphics, 整数型
.参数 image, 整数型
.参数 x, 小数型
.参数 y, 小数型
.参数 width, 小数型
.参数 height, 小数型
.DLL命令 GdipDisposeImage, 整数型, "gdiplus.dll", "GdipDisposeImage"
.参数 image, 整数型
.DLL命令 GdipDeleteGraphics, 整数型, "GdiPlus.dll", "GdipDeleteGraphics"
.参数 graphics, 整数型
.DLL命令 GlobalFree, 整数型, , "GlobalFree"
.参数 hMem, 整数型
.DLL命令 GlobalAlloc, 整数型, , "GlobalAlloc"
.参数 wFlags, 整数型
.参数 dwBytes, 整数型
.DLL命令 CreateStreamOnHGlobal, 整数型, "Ole32.dll", "CreateStreamOnHGlobal"
.参数 hGlobal, 整数型
.参数 fDeleteOnRelease, 整数型
.参数 ppstm, 整数型, 传址
.DLL命令 lstrcpyn_字节集, 整数型, , "lstrcpyn"
.参数 欲取其指针, 字节集, 传址
.参数 欲取其指针, 字节集, 传址
.参数 保留, 整数型, , 0
.DLL命令 RtlMoveMemory_整数, 整数型, , "RtlMoveMemory"
.参数 lpvDest, 整数型, 传址
.参数 lpvSource, 整数型
.参数 cbCopy, 整数型
.DLL命令 GlobalLock, 整数型, , "GlobalLock"
.参数 hMem, 整数型
.DLL命令 GlobalUnlock, 整数型, , "GlobalUnlock"
.参数 hMem, 整数型
.DLL命令 GlobalSize, 整数型, , "GlobalSize"
.参数 hMem
.DLL命令 GetMenuString, 整数型, "user32", "GetMenuStringA"
.参数 菜单句柄, 整数型
.参数 条目位置, 整数型
.参数 缓冲区, 文本型
.参数 缓冲区长度, 整数型
.参数 标志, 整数型
.DLL命令 LocalAlloc, 整数型
.参数 uFlags, 整数型
.参数 uBytes, 整数型
.DLL命令 FillMemory, , , "RtlFillMemory", , 填充内存字节
.参数 Destination, 整数型, , 指针地址
.参数 Length, 整数型, , 长度
.参数 Fill, 字节型, , 字节数据
.DLL命令 LocalFree, 整数型
.参数 hMem, 整数型
.DLL命令 动态调用子程序_API, 整数型, , "CallWindowProcA"
.参数 动态调用代码, 字节集, , 一定要用本人编写的
.参数 子程序, 整数型, , 子程序指针
.参数 参数, 整数型, 数组, 为整数数组,参数1为成员1…类推;文本型和字节集型(自定义结构)为指针
.参数 参数数目, 整数型, , 一定要和参数数组相符,不然会出错
.参数 是否C调用, 逻辑型, , 真为cdecl调用方式,假为stdcall调用方式(即标准WINAPI方式)
.DLL命令 GetProcAddress, 整数型, , "GetProcAddress"
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 lstrcpyn_文本型, 整数型, , "lstrcpyn"
.参数 欲取其指针, 文本型, 传址
.参数 欲取其指针, 文本型, 传址
.参数 保留, 整数型, , 0
.DLL命令 GetModuleHandle_文本, 整数型, "kernel32", "GetModuleHandleA"
.参数 lpModuleName, 文本型
.DLL命令 DrawMenuBar, 整数型, "user32.dll", "DrawMenuBar", , 为指定的窗口重画菜单
.参数 窗口句柄, 整数型, , hwnd,要重画菜单栏的窗口的句柄
.DLL命令 TrackPopupMenu, 整数型, "user32.dll", "TrackPopupMenu", , 在屏幕的任意地方显示一个弹出式菜单
.参数 菜单句柄, 整数型, , 弹出式菜单的句柄
.参数 标志, 整数型, , 位置标志和鼠标追踪标志的组合,见下表
.参数 横坐标, 整数型, , 这个点指定了弹出式菜单在屏幕坐标系统中的位置
.参数 纵坐标, 整数型, , 这个点指定了弹出式菜单在屏幕坐标系统中的位置
.参数 保留参数, 整数型, , 未使用,设为零
.参数 窗口句柄, 整数型, , 用于接收弹出式菜单命令的窗口的句柄。应该使用窗体的窗口句柄——窗体中有一个菜单能象弹出式菜单那样接收相同的命令ID集
.参数 矩形结构, RECT, , 用屏幕坐标定义的一个矩形,如用户在这个矩形的范围内单击,则弹出式菜单不会关闭。如单击弹出式菜单之外的任何一个地方,则会关闭菜单。可以设为NULL
.DLL命令 GetWindowRect, 整数型, "user32", "GetWindowRect"
.参数 窗口句柄, 整数型
.参数 矩形区域, RECT
.DLL命令 IsMenu, 整数型, "user32.dll", "IsMenu", , 判断指定的句柄是否为一个菜单的句柄
.参数 菜单句柄, 整数型, , hMenu,欲测试的菜单的句柄