易语言模拟自绘属性框源码
系统结构:pWndProc,lWndProc,DrawItem,List_AddItem,GetThis,GetItemRect,GetScrollOffset,GetItemCount,Edit_Str,创建,载入易语言配色_Clr,加入项目,TransitWndProc,调用子程序_,GetClassMethodAddr,指针到整数,CreateFontEx,CreateWindowEx,GetModuleHandle,IsWindow,SetWindowLong,SetProp,IsBadReadPtr_,GetProp,CallWindowProc,IsBadCodePtr,SendMessage,SendMessageStr,SendMessageRc,CreateFontA,InvalidateRect,BeginPaint,EndPaint,SendMessageA,CreateSolidBrush,GetClientRect,FillRect,SetTextColor,GetTextColor,DeleteObject,RtlMoveMemory,lstrcpyn,DrawFocusRect,CreatePen,SelectObject,Rectangle,LineTo,MoveToEx,SetBkMode,DrawText,OffsetRect,MoveWindow,GetWindowText,SetWindowText,ShowWindow,
======属性框类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ pWndProc
| |
| |------ lWndProc
| |
| |------ DrawItem
| |
| |------ List_AddItem
| |
| |------ GetThis
| |
| |------ GetItemRect
| |
| |------ GetScrollOffset
| |
| |------ GetItemCount
| |
| |------ Edit_Str
| |
| |------ 创建
| |
| |------ 载入易语言配色_Clr
| |
| |------ 加入项目
| |
| |
======程序集1
| |
| |------ TransitWndProc
| |
| |------ 调用子程序_
| |
| |------ GetClassMethodAddr
| |
| |------ 指针到整数
| |
| |------ CreateFontEx
| |
| |
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮1_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateWindowEx
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ IsWindow
| |
| |---[dll]------ SetWindowLong
| |
| |---[dll]------ SetProp
| |
| |---[dll]------ IsBadReadPtr_
| |
| |---[dll]------ GetProp
| |
| |---[dll]------ CallWindowProc
| |
| |---[dll]------ IsBadCodePtr
| |
| |---[dll]------ SendMessage
| |
| |---[dll]------ SendMessageStr
| |
| |---[dll]------ SendMessageRc
| |
| |---[dll]------ CreateFontA
| |
| |---[dll]------ InvalidateRect
| |
| |---[dll]------ BeginPaint
| |
| |---[dll]------ EndPaint
| |
| |---[dll]------ SendMessageA
| |
| |---[dll]------ CreateSolidBrush
| |
| |---[dll]------ GetClientRect
| |
| |---[dll]------ FillRect
| |
| |---[dll]------ SetTextColor
| |
| |---[dll]------ GetTextColor
| |
| |---[dll]------ DeleteObject
| |
| |---[dll]------ RtlMoveMemory
| |
| |---[dll]------ lstrcpyn
| |
| |---[dll]------ DrawFocusRect
| |
| |---[dll]------ CreatePen
| |
| |---[dll]------ SelectObject
| |
| |---[dll]------ Rectangle
| |
| |---[dll]------ LineTo
| |
| |---[dll]------ MoveToEx
| |
| |---[dll]------ SetBkMode
| |
| |---[dll]------ DrawText
| |
| |---[dll]------ OffsetRect
| |
| |---[dll]------ MoveWindow
| |
| |---[dll]------ GetWindowText
| |
| |---[dll]------ SetWindowText
| |
| |---[dll]------ ShowWindow
调用的DLL命令:
.DLL命令 CreateWindowEx, 整数型, "user32", "CreateWindowExA", , 建立窗口
.参数 dwExStyle, 整数型
.参数 lpClassName, 文本型
.参数 lpWindowName, 文本型
.参数 dwStyle, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 nWidth, 整数型
.参数 nHeight, 整数型
.参数 hWndParent, 整数型
.参数 hMenu, 整数型
.参数 hInstance, 整数型
.参数 lpParam, 整数型
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 IsWindow, 整数型, "user32", "IsWindow", , 判断一个窗口句柄是否有效 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 待检查窗口的句柄;
.DLL命令 SetWindowLong, 整数型, "user32", "SetWindowLongA", , 在窗口结构中为指定的窗口设置信息 指定数据的前一个值
.参数 hwnd, 整数型
.参数 nIndex, 整数型
.参数 dwNewLong, 整数型
.DLL命令 SetProp, 整数型, "user32", "SetPropA", , 增加或修改属性列项
.参数 hwnd, 整数型
.参数 lpString, 文本型
.参数 hData, 整数型
.DLL命令 IsBadReadPtr_, 整数型, "kernel32", "IsBadReadPtr", , 确定进程是否有读动作
.参数 lp, 整数型
.参数 ucb, 整数型
.DLL命令 GetProp, 整数型, "user32", "GetPropA", , 从窗口属性表列中返回数据句柄
.参数 hwnd, 整数型
.参数 lpString, 文本型
.DLL命令 CallWindowProc, 整数型, "user32", "CallWindowProcA", , 将消息传答窗口函数
.参数 lpPrevWndFunc, 整数型
.参数 hwnd, 整数型
.参数 msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 IsBadCodePtr, 逻辑型, "kernel32", "IsBadCodePtr", , 确定读指针的合法性
.参数 lpfn, 整数型
.DLL命令 SendMessage, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型security”声明形式 由具体的消息决定
.参数 hwnd, 整数型, , 要接收消息的那个窗口的句柄
.参数 wMsg, 整数型, , 消息的标识符
.参数 wParam, 整数型, , 具体取决于消息
.参数 lParam, 整数型, , 具体取决于消息;
.DLL命令 SendMessageStr, 整数型, "user32", "SendMessageA"
.参数 hwnd, 整数型
.参数 wMsg, 整数型
.参数 wParam, 整数型
.参数 lParam, 文本型, 传址
.DLL命令 SendMessageRc, 整数型, "user32", "SendMessageA"
.参数 hwnd, 整数型
.参数 wMsg, 整数型
.参数 wParam, 整数型
.参数 lParam, RECT, 传址
.DLL命令 CreateFontA, 整数型, "gdi32", "CreateFontA", , 用指定的属性创建一种逻辑字体 执行成功则返回逻辑字体的句柄,零表示失败。会设置GetLastError
.参数 H, 整数型, , IfHeight
.参数 W, 整数型, , IfWidth
.参数 E, 整数型, , IfEscapement
.参数 O, 整数型, , IfOrientation
.参数 W, 整数型, , IfWeight
.参数 I, 整数型, , IfItalic
.参数 u, 整数型, , IfUnderline
.参数 S, 整数型, , IfStrikeOut
.参数 C, 整数型, , IfCharSet
.参数 OP, 整数型, , IfOutputPrecision
.参数 CP, 整数型, , IfClipPrecision
.参数 Q, 整数型, , IfQuality
.参数 PAF, 整数型, , IfPitchAndFamily
.参数 F, 文本型, , IfFaceName;
.DLL命令 InvalidateRect, 整数型, "user32", "InvalidateRect", , 这个函数屏蔽一个窗口客户区的全部或部分区域。这会导致窗口在事件期间部分重画 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 待屏蔽窗口的句柄
.参数 lpRect, 整数型, , RECT,用于描述待屏蔽矩形部分的一个矩形结构。可用InvalidateRectBynum函数,同时将lpRect设为零(Long数据类型),从而屏蔽(或禁用)整个窗口
.参数 bErase, 整数型, , TRUE(非零)导致指定的区域在重画前先删除;
.DLL命令 BeginPaint, 整数型, "user32", "BeginPaint", , 准备一个画图窗
.参数 hwnd, 整数型
.参数 lpPaint, PAINTSTRUCT
.DLL命令 EndPaint, 整数型, "user32", "EndPaint", , 在指定窗口中标记图画结尾标志
.参数 hwnd, 整数型
.参数 lpPaint, PAINTSTRUCT
.DLL命令 SendMessageA, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型security”声明形式 由具体的消息决定
.参数 hwnd, 整数型, , 要接收消息的那个窗口的句柄
.参数 wMsg, 整数型, , 消息的标识符
.参数 wParam, 整数型, , 具体取决于消息
.参数 lParam, 整数型, , 具体取决于消息;
.DLL命令 CreateSolidBrush, 整数型, "gdi32", "CreateSolidBrush", , 用纯色创建一个刷子 如执行成功,返回新刷子的一个句柄;否则返回零
.参数 crColor, 整数型, , 数字的RGB彩色;
.DLL命令 GetClientRect, 整数型, "user32", "GetClientRect", , 返回指定窗口客户区矩形的大小 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 欲计算大小的目标窗口
.参数 lpRect, RECT, , RECT,指定一个矩形,用客户区域的大小载入(以像素为单位);
.DLL命令 FillRect, 整数型, "user32", "FillRect", , 用指定的刷子填充一个矩形 非零表示成功,零表示失败。会设置GetLastError
.参数 hdc, 整数型, , 设备场景的句柄
.参数 lpRect, RECT, , RECT,对填充区域进行描述的一个矩形,采用逻辑坐标
.参数 hBrush, 整数型, , 欲使用的刷子的句柄;
.DLL命令 SetTextColor, 整数型, "gdi32", "SetTextColor", , 设置当前文本颜色。这种颜色也称为“前景色” 文本色的前一个RGB颜色设定。CLR_INVALID表示失败。会设置GetLastError
.参数 hdc, 整数型
.参数 crColor, 整数型
.DLL命令 GetTextColor, 整数型, "gdi32", "GetTextColor", , 判断当前字体颜色。通常也称为“前景色” 文字的当前RGB颜色设置。如果出错,会返回CLR_INVALID。会设置GetLastError
.参数 hdc, 整数型, , 设备场景的句柄;
.DLL命令 DeleteObject, 整数型, "gdi32", "DeleteObject", , 用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放 非零表示成功,零表示失败
.参数 hObject, 整数型, , 一个GDI对象的句柄;
.DLL命令 RtlMoveMemory, , "kernel32.dll", "RtlMoveMemory"
.参数 Destination, DRAWITEMSTRUCT, 传址
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 lstrcpyn, 整数型, "kernel32", "lstrcpynA"
.参数 lpString1, 文本型
.参数 lpString2, 文本型
.参数 iMaxLength, 整数型
.DLL命令 DrawFocusRect, 整数型, "user32", "DrawFocusRect", , 画一个焦点矩形。这个矩形是在标志焦点的样式中通过异或运算完成的(焦点通常用一个点线表示)。如用同样的参数再次调用这个函数,就表示删除焦点矩形 非零表示成功,零表示失败。会设置GetLastError
.参数 hdc, 整数型, , 设备场景的句柄
.参数 lpRect, RECT, , RECT,要在逻辑坐标中描绘的矩形;
.DLL命令 CreatePen, 整数型, "gdi32", "CreatePen", , 用指定的样式、宽度和颜色创建一个画笔 如函数执行成功,就返回指向新画笔的一个句柄;否则返回零
.参数 nPenStyle, 整数型, , 指定画笔样式,可以是下述常数之一;PS_SOLID:画笔画出的是实线;PS_DASH:画笔画出的是虚线(nWidth必须是1);PS_DOT:画笔画出的是点线(nWidth必须是1);PS_DASHDOT:画笔画出的是点划线(nWidth必须是1);PS_DASHDOTDOT:画笔画出的是点-点-划线(nWidth必须是1);PS_NULL:画笔不能画图;PS_INSIDEFRAME:画笔在由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框中画图。如指定的准确RGB颜色不存在,就进行抖动处理
.参数 nWidth, 整数型, , 以逻辑单位表示的画笔的宽度
.参数 crColor, 整数型, , 画笔的RGB颜色;
.DLL命令 SelectObject, 整数型, "gdi32", "SelectObject", , 每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式 与以前选入设备场景的相同hObject类型的一个对象的句柄,零表示出错。如选定的对象是一个区域(Region),结果就是下列常数之一:SIMPLEREGION, ; COMPLEXREGION 或 NULLREGION 对区域进行描述, GDI_ERROR 表示出错
.参数 hdc, 整数型, , 一个设备场景的句柄
.参数 hObject, 整数型, , 一个画笔、位图、刷子、字体或区域的句柄;
.DLL命令 Rectangle, 整数型, "gdi32", "Rectangle", , 用当前选定的画笔描绘矩形,并用当前选定的刷子进行填充 非零表示成功,零表示失败。会设置GetLastError
.参数 hdc, 整数型, , 设备场景的句柄
.参数 X1, 整数型, , 指定矩形左上角位置
.参数 Y1, 整数型, , 同上
.参数 X2, 整数型, , 指定矩形右下角位置
.参数 Y2, 整数型, , 同上;
.DLL命令 LineTo, 整数型, "gdi32", "LineTo", , 用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位置变成x
.参数 hdc, 整数型, , 设备场景的句柄
.参数 x, 整数型, , 线段终点位置,采用逻辑坐标表示。这个点不会实际画出来;它不属于线段的一部分;
.参数 y, 整数型, , 同上;
.DLL命令 MoveToEx, 整数型, "gdi32", "MoveToEx", , 为指定的设备场景指定一个新的当前画笔位置。前一个位置保存在lpPoint中 非零表示成功,零表示失败
.参数 hdc, 整数型, , 指向一个设备场景的句柄
.参数 x, 整数型, , 采用逻辑坐标表示的新画笔位置
.参数 y, 整数型, , 同上
.参数 lpPoint, 整数型, , POINTAPI,用于保存前一个画笔位置。可以为NULL(将参数改为ByVal As 以传递一个空参数);
.DLL命令 SetBkMode, 整数型, "gdi32", "SetBkMode", , 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 前一个背景模式的值
.参数 hdc, 整数型
.参数 nBkMode, 整数型
.DLL命令 DrawText, 整数型, "user32", "DrawTextA", , 将文本描绘到指定的矩形中 描绘文字的高度
.参数 hdc, 整数型, , 欲在其中显示文字的一个设备场景的句柄
.参数 lpStr, 文本型, , 欲描绘的文本字串
.参数 nCount, 整数型, , 欲描绘的字符数量。如果要描绘整个字串(直到空中止符),则可将这个参数设为-1
.参数 lpRect, RECT, , RECT,指定用于绘图的一个格式化矩形(采用逻辑坐标)
.参数 wFormat, 整数型, , 一个标志位数组,决定了以何种形式执行绘图。参考下面总结的常数类型列表标志常数说明DT_BOTTOM必须同时指定DT_SINGLE。指示文本对齐格式化矩形的底边DT_CALCRECT象下面这样计算格式化矩形:多行绘图时矩形的底边根据需要进行延展,以便容下所有文字;单行绘图时,延展矩形的右侧。不描绘文字。由lpRect参数指定的矩形会载入计算出来的值DT_CENTER文本垂直居中DT_EXPANDTABS描绘文字的时候,对制表站进行扩展。默认的制表站间距是8个字符。但是,可用DT_TABSTOP标志改变这项设定DT_EXTERNALLEADING计算文本行高度的时候,使用当前字体的外部间距属性(the external leading attribute)DT_LEFT文本左对齐DT_NOCLIP描绘文字时不剪切到指定的矩形DT_NOPREFIX通常,函数认为 & 字符表示应为下一个字符加上下划线。该标志禁止这种行为DT_RIGHT文本右对齐DT_SINGLELINE只画单行DT_TABSTOP指定新的制表站间距,采用这个整数的高8位DT_TOP必须同时指定DT_SINGLE。指示文本对齐格式化矩形的顶部DT_VCENTER必须同时指定DT_SINGLE。指示文本对齐格式化矩形的中部DT_WORDBREAK进行自动换行。如用SetTextAlign函数设置了TA_UPDATECP标志,这里的设置则无效;
.DLL命令 OffsetRect, 整数型, "user32", "OffsetRect", , 该函数通过应用一个指定的偏移,从而让矩形移动起来。x会添加到右侧和左侧区域。y添加到顶部和底部区域。偏移方向则取决于参数是正数还是负数,以及采用的是什么坐标系统 非零表示成功,零表示失败。会设置GetLastError
.参数 lpRect, RECT, , RECT,欲移动的矩形
.参数 x, 整数型, , 水平偏移量
.参数 y, 整数型, , 垂直偏移量;
.DLL命令 MoveWindow, 整数型, "user32", "MoveWindow", , 改变指定窗口的位置和大小。顶级窗口可能受最大或最小尺寸的限制,那些尺寸优先于这里设置的参数 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 欲移动窗口的句柄
.参数 x, 整数型, , 窗口新的左侧位置
.参数 y, 整数型, , 窗口新的顶部位置
.参数 nWidth, 整数型, , 窗口的新宽度
.参数 nHeight, 整数型, , 窗口的高宽度
.参数 bRepaint, 整数型, , 如窗口此时应重画,则设为TRUE(非零)。FALSE(零)则表明应用程序会自己决定是否重画窗口;
.DLL命令 GetWindowText, 整数型, "user32", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
.参数 hwnd, 整数型, , 欲获取文字的那个窗口的句柄
.参数 lpString, 文本型, , 预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
.参数 cch, 整数型, , lp缓冲区的长度;
.DLL命令 SetWindowText, 整数型, "user32", "SetWindowTextA", , 设置窗口的标题文字或控件的内容(在vb里使用:针对vb窗体,应使用caption或text属性) 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型
.参数 lpString, 文本型
.DLL命令 ShowWindow, 整数型, "user32", "ShowWindow", , 控制窗口的可见性(在vb里使用:针对vb窗体及控件,请使用对应的vb属性) 如窗口之前是可见的,则返回TRUE(非零),否则返回FALSE(零)
.参数 hwnd, 整数型, , 窗口句柄,要向这个窗口应用由nCmdShow指定的命令
.参数 nCmdShow, 整数型, , 为窗口指定可视性方面的一个命令。请用下述任何一个常数;SW_HIDE:隐藏窗口,活动状态给令一个窗口;SW_MINIMIZE:最小化窗口,活动状态给令一个窗口;SW_RESTORE:用原来的大小和位置显示一个窗口,同时令其进入活动状态;SW_SHOW:用当前的大小和位置显示一个窗口,同时令其进入活动状态;SW_SHOWMAXIMIZED:最大化窗口,并将其激活;SW_SHOWMINIMIZED:最小化窗口,并将其激活;SW_SHOWMINNOACTIVE:最小化一个窗口,同时不改变活动窗口;SW_SHOWNA:用当前的大小和位置显示一个窗口,不改变活动窗口;SW_SHOWNOACTIVATE:用最近的大小和位置显示一个窗口,同时不改变活动窗口;SW_SHOWNORMAL:与SW_RESTORE相同;
易语言类似冒险岛2D横版卷轴类游戏源码,初始化,开场见面,处理物品使用,显示掉血数值,怪物刷新血,减血加血处理,创建方块,创建怪物,重叠检测子程序,处理动画,创建物品,创建物品框架...
易语言窗口特效码源码,窗口进程取句柄,进程枚举,枚举窗口,枚举窗口过程,内存自动优化,内存优化,窗口移动,取屏幕尺寸,时钟周期,窗口特效_中心扩展,窗口特效_立体旋转,取窗口尺寸,窗...
易语言用标签打造漂亮界面源码,用标签打造漂亮界面...
易语言特训小游戏源码,newGame,偏移,绘制,碰撞检测,移动,x,y...
易语言图表模块和24位色转单色位图模块源码,初始化表,画柱形,画曲线,检查,画坐标,画虚线,转化为单色,读字节文本,取十进制文本,取二进制文本,画圆饼,椭圆初始化,画饼,算角,颜色...
易语言图片播放刚哪个朋友要的源码,寻找图片文件...
易语言图片色调亮度处理源码,混合颜色...
易语言取字符非循环源码,ANSI转UNICODE,UNICODE转ANSI,取字符数,取字符左边,取字符中间,取字符右边,取字符数2,取字符数3,分解文本到数组,A字符转U,U字符转A...
易语言轮值表源码,轮值表头初始化...