//
//
//
//
//
//
//
//
//
//
软件Tags:
易语言模拟自绘属性框源码系统结构: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是该函数的“类型安全”声明形式由具体的消息决定 .参数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是该函数的“类型安全”声明形式由具体的消息决定 .参数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(将参数改为ByValAs以传递一个空参数); .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计算文本行高度的时候,使用当前字体的外部间距属性(theexternalleadingattribute)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相同;
