易语言遮照演示源码
系统结构:SetWindowLong,GetWindowLong,SetLayeredWindowAttributes,ClientToScreen,CombineRgn,CreateRectRgn,GetClientRect,GetWindowRect,SetWindowRgn,ScreenToClient,
======窗口程序集1
| |
| |------ __启动窗口_位置被改变
| |
| |------ __启动窗口_将被销毁
| |
| |------ _按钮3_被单击
| |
| |------ _按钮1_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ SetWindowLong
| |
| |---[dll]------ GetWindowLong
| |
| |---[dll]------ SetLayeredWindowAttributes
| |
| |---[dll]------ ClientToScreen
| |
| |---[dll]------ CombineRgn
| |
| |---[dll]------ CreateRectRgn
| |
| |---[dll]------ GetClientRect
| |
| |---[dll]------ GetWindowRect
| |
| |---[dll]------ SetWindowRgn
| |
| |---[dll]------ ScreenToClient
调用的DLL命令:
.DLL命令 SetWindowLong, 整数型, "user32.dll", "SetWindowLongA"
.参数 hWnd, 整数型
.参数 nIndex, 整数型
.参数 dwNewLong, 整数型
.DLL命令 GetWindowLong, 整数型, "user32.dll", "GetWindowLongA"
.参数 hWnd, 整数型
.参数 nIndex, 整数型
.DLL命令 SetLayeredWindowAttributes, , "user32.dll", "SetLayeredWindowAttributes"
.参数 句柄, 整数型, , 窗口句柄
.参数 透明颜色值, 整数型, , 透明色
.参数 透明度, 整数型, , 透明度(0-255,0为不透明,255为全透明)
.参数 透明方式, 整数型, , LWA_COLORKEY(=1)表示使用 透明色; LWA_ALPHA(=2)表示使用 透明度
.DLL命令 ClientToScreen, 整数型, "user32", "ClientToScreen", , 判断窗口内以客户区坐标表示的一个点的屏幕坐标 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 判断客户区坐标时那个窗口的句柄
.参数 lpPoint, POINTAPI, , POINTAPI,用hwnd窗口的客户区坐标表示的点,这个参数会包含屏幕坐标系统中相同的点;
.DLL命令 CombineRgn, 整数型, "gdi32", "CombineRgn", , 将两个区域组合为一个新区域 下列常数之一:; COMPLEXREGION:区域有互相交叠的边界; SIMPLEREGION:区域边界没有互相交叠; NULLREGION:区域为空; ERRORAPI:不能创建组合区域
.参数 hDestRgn, 整数型, , 包含组合结果的区域句柄
.参数 hSrcRgn1, 整数型, , 源区域1
.参数 hSrcRgn2, 整数型, , 源区域2
.参数 nCombineMode, 整数型, , 组合两区域的方法。可设为下述常数RGN_ANDhDestRgn被设置为两个源区域的交集RGN_COPYhDestRgn被设置为hSrcRgn1的拷贝RGN_DIFFhDestRgn被设置为hSrcRgn1中与hSrcRgn2不相交的部分RGN_ORhDestRgn被设置为两个区域的并集RGN_XORhDestRgn被设置为除两个源区域OR之外的部分;
.DLL命令 CreateRectRgn, 整数型, "gdi32", "CreateRectRgn", , 创建一个由点X1,Y1和X2,Y2描述的矩形区域 执行成功为区域句柄,失败则为零
.参数 X1, 整数型, , 矩形左上角X,Y坐标
.参数 Y1, 整数型, , 同上
.参数 X2, 整数型, , 矩形右下角X,Y坐标;
.参数 Y2, 整数型, , 同上;
.DLL命令 GetClientRect, 整数型, "user32", "GetClientRect", , 返回指定窗口客户区矩形的大小 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 欲计算大小的目标窗口
.参数 lpRect, RECT, , RECT,指定一个矩形,用客户区域的大小载入(以像素为单位);
.DLL命令 GetWindowRect, 整数型, "user32", "GetWindowRect", , 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 想获得范围矩形的那个窗口的句柄
.参数 lpRect, RECT, , RECT,屏幕坐标中随同窗口装载的矩形;
.DLL命令 SetWindowRgn, 整数型, "user32", "SetWindowRgn", , 这是那些很难有人注意到的对编程者来说是个巨大的宝藏的隐含的API函数中的一个。本函数允许您改变窗口的区域。
; 通常所有窗口都是矩形的——窗口一旦存在就含有一个矩形区域。本函数允许您放弃该区域。这意味着您可以创建圆的、星形的窗口,也可以将它分为两个或许多部分——实际上可以是任何形状 执行成功为非零值,失败为0
.参数 hWnd, 整数型, , 将设置其区域的窗口
.参数 hRgn, 整数型, , 将设置的区域的句柄,一旦设置了该区域,就不能使用或修改该区域句柄,也不要删除它
.参数 bRedraw, 逻辑型, , Boolean,若为TRUE,则立即重画窗口;
.DLL命令 ScreenToClient, 整数型, "user32", "ScreenToClient", , 判断屏幕上一个指定点的客户区坐标 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 一个窗口的句柄,该窗口定义了要使用的客户区坐标系统
.参数 lpPoint, POINTAPI, , POINTAPI,屏幕坐标系统中包含了屏幕点的结构。这个函数会随同相应的客户区坐标(由hwnd决定)载入结构;
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。