养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

易语言如何隐藏窗口

时间:2024-10-14 13:21:27

本经验可以帮你的软件添加像气QQ一样的伸缩窗口

易语言如何隐藏窗口

工具/原料

易语言

方法/步骤

1、新建一个Windows窗口程序

易语言如何隐藏窗口

2、双击启动窗口,输入代码:.版本2.支持库spec.程序集窗口程序集1.程序集变量原独瘦配溧窗口,整数型.程序集变量停靠,整数型,,,1左,2上,3右,0为不.程序集懈吡赜痖变量正在收放,整数型,,,1收,2放.程序集变量计数,整数型.程序集变量已收起,逻辑型.程序集变量时钟,整数型.程序集变量步进长度,整数型,,,新加的.程序集变量最小尺寸,整数型,,,新加的.子程序__启动窗口_创建完毕'本程序严格按照比赛要求,只限制左,上,右窗口移动和停靠,且只和鼠标在窗口停留或离开后1秒后才有动作-borisc原窗口=设置窗口信息_(取窗口句柄(),#GWL_WNDPROC,到整数(&处理))读回窗口位置()步进长度=15最小尺寸=5.子程序读回窗口位置,,,移植_.局部变量配置文件名,文本型配置文件名=取运行目录()+“\窗口位置.INI”_启动窗口.高度=到数值(读配置项(配置文件名,“WINDOW”,“高度”,到文本(取屏幕高度()÷2)))_启动窗口.宽度=到数值(读配置项(配置文件名,“WINDOW”,“宽度”,到文本(取屏幕宽度()÷4)))_启动窗口.左边=到数值(读配置项(配置文件名,“WINDOW”,“左边”,到文本(取屏幕宽度()÷2)))_启动窗口.顶边=到数值(读配置项(配置文件名,“WINDOW”,“顶边”,“0”)).如果真(_启动窗口.左边>取屏幕宽度()-30)_启动窗口.左边=(取屏幕宽度()-_启动窗口.宽度)÷2.如果真结束.如果真(_启动窗口.左边<0)_启动窗口.左边=0.如果真结束.如果真(_启动窗口.顶边>取屏幕高度()-_启动窗口.高度)_启动窗口.顶边=取屏幕高度()-_启动窗口.高度.如果真结束.如果真(_启动窗口.顶边<0)_启动窗口.顶边=0.如果真结束调试输出(“_启动窗口.”,_启动窗口.左边,_启动窗口.顶边,_启动窗口.高度,_启动窗口.宽度).子程序将被销毁保存位置,,,移植_.局部变量配置文件名,文本型配置文件名=取运行目录()+“\窗口位置.INI”写配置项(配置文件名,“WINDOW”,“左边”,到文本(_启动窗口.左边))写配置项(配置文件名,“WINDOW”,“顶边”,到文本(_启动窗口.顶边))写配置项(配置文件名,“WINDOW”,“高度”,到文本(_启动窗口.高度))写配置项(配置文件名,“WINDOW”,“宽度”,到文本(_启动窗口.宽度)).子程序处理,整数型.参数hwnd,整数型.参数Msg,整数型.参数wp,整数型.参数lp,整数型.判断开始(Msg=#WM_MOVING)'正在移动限制移动或大小(lp,0).如果真(停靠≠0)'移动禁止依靠停靠=0正在收放=0.如果真结束.判断(Msg=#WM_GETMINMAXINFO)'正在获得大小消息.如果真(正在收放=0)限制移动或大小(lp,1).如果真结束.判断(Msg=#WM_SIZING)'正在改变大小.如果真(停靠≠0)'大小禁止依靠停靠=0正在收放=0.如果真结束.判断(Msg=#WM_SIZE)'大小已改变判断停靠().判断(Msg=#WM_MOVE)'位置已移动.如果真(正在收放=0)'无收放动作判断停靠().如果真结束.判断(Msg=#WM_EXITSIZEMOVE)判断停靠().判断(Msg=#WM_NCLBUTTONDOWN)'标题栏鼠标按下.如果真(停靠≠0).如果真((已收起或正在收放≠0)且wp≠2)'禁止大小Msg=0.如果真结束.如果真结束.判断(Msg=#WM_SYSCOMMAND)'系统菜单.如果真((已收起或正在收放≠0)且wp=61440)'收起了禁止调整大小Msg=0.如果真结束.默认.判断结束返回(呼叫窗口函数地址_(原窗口,hwnd,Msg,wp,lp)).子程序判断停靠.判断开始(顶边<2)_启动窗口.移动(,0,,)'这里可写吸附停靠=2'上.如果真(时钟=0)时钟=设置时钟_(取窗口句柄(),1036,100,到整数(&判断收放)).如果真结束.判断(左边<2)停靠=1'左_启动窗口.移动(0,,,).如果真(时钟=0)时钟=设置时钟_(取窗口句柄(),1036,100,到整数(&判断收放)).如果真结束.判断(左边>取屏幕宽度()-宽度-2)停靠=3'右_启动窗口.移动(取屏幕宽度()-宽度,,,).如果真(时钟=0)时钟=设置时钟_(取窗口句柄(),1036,100,到整数(&判断收放)).如果真结束.默认停靠=0.如果真(时钟≠0)销毁时钟_(取窗口句柄(),1036)时钟=0.如果真结束.判断结束.如果真(已收起)判断收起().如果真结束.子程序判断收起.判断开始(顶边=5-高度或左边=5-宽度或左边=取屏幕宽度()-5)已收起=真.默认已收起=假.判断结束.子程序限制移动或大小,,,0移动,非0大小.参数lp,整数型,参考.参数移动或大小,整数型.局部变量a,MINMAXINFO'分开子程序是不想鼠标移动等等其它信息也分一个变量空间,个人猜想.判断开始(移动或大小=0)复制内存1_(a,lp,40)'40为MINMAXINFO结构长度.如果真(a.ptReserved.横向位置<2)'靠边像磁铁一样,为0就不吸啦a.ptReserved.横向位置=0a.ptMaxSize.横向位置=0+宽度.如果真结束.如果真(a.ptReserved.纵向位置<2)a.ptReserved.纵向位置=0a.ptMaxSize.纵向位置=0+高度.如果真结束.如果真(a.ptMaxSize.横向位置>取屏幕宽度()-2)a.ptReserved.横向位置=取屏幕宽度()-宽度a.ptMaxSize.横向位置=取屏幕宽度().如果真结束.如果真(a.ptMaxSize.纵向位置>取屏幕高度())'这里是限制窗口下边不越出屏幕之外的代码.a.ptReserved.纵向位置=取屏幕高度()-高度a.ptMaxSize.纵向位置=取屏幕高度().如果真结束复制内存_(lp,a,40)'40为MINMAXINFO结构长度.默认复制内存1_(a,lp,40)'40为MINMAXINFO结构长度a.ptMinTrackSize.横向位置=188'最小Xa.ptMinTrackSize.纵向位置=250'最小Y''a.ptMaxTrackSize.横向位置=取屏幕宽度()'最大X''a.ptMaxTrackSize.纵向位置=取屏幕高度()'最大Y复制内存_(lp,a,40)'40为MINMAXINFO结构长度.判断结束'ZeroMemory(a,40).子程序判断收放.局部变量x,整数型.局部变量y,整数型x=取鼠标水平位置()y=取鼠标垂直位置().判断开始(x<左边或x>左边+宽度或y<顶边或y>顶边+高度).如果真(正在收放=2)'正在展开时收起正在收放=0延时(10).如果真(停靠≠0)窗口收起().如果真结束.如果真结束.判断开始(已收起)计数=0.默认.判断开始(停靠=0)计数=0.默认计数=计数+1.判断结束.如果真(计数=10)'1秒收起计数=0.如果真(正在收放≠1)窗口收起().如果真结束.如果真结束.判断结束.默认.判断开始(已收起)计数=计数+1.如果真(计数=10)'1秒展开计数=0.如果真(正在收放≠2且停靠≠0)窗口展开().如果真结束.如果真结束.默认计数=0.判断结束.如果真(正在收放=1)'正在收起时展开正在收放=0延时(10).如果真(正在收放≠2且停靠≠0)窗口展开().如果真结束.如果真结束.判断结束.子程序窗口收起.局部变量x,整数型.局部变量y,整数型正在收放=1.判断开始(停靠=1)'左x=_启动窗口.左边.判断循环首(x>7-_启动窗口.宽度)处理事件().如果真(正在收放≠1或停靠=0)返回().如果真结束延时(10)x=x-步进长度'5_启动窗口.移动(x,,,).判断循环尾()_启动窗口.移动(最小尺寸-_启动窗口.宽度,,,)'5.判断(停靠=3)'右x=左边y=取屏幕宽度().判断循环首(x<y-7)处理事件().如果真(正在收放≠1或停靠=0)返回().如果真结束延时(10)x=x+步进长度'5_启动窗口.移动(x,,,).判断循环尾()_启动窗口.移动(y-最小尺寸,,,).判断(停靠=2)'上x=顶边.判断循环首(x>7-高度)处理事件().如果真(正在收放≠1或停靠=0)返回().如果真结束延时(10)x=x-步进长度'5_启动窗口.移动(,x,,).判断循环尾()_启动窗口.移动(,最小尺寸-_启动窗口.高度,,).默认.判断结束'销毁时钟_(取窗口句柄(),1036)'时钟=0已收起=真正在收放=0总在最前=真调整层次(#顶层)调整层次(#最高层).子程序窗口展开.局部变量x,整数型.局部变量y,整数型正在收放=2已收起=假_启动窗口.总在最前=真_启动窗口.总在最前=假.判断开始(停靠=2)'上x=_启动窗口.顶边.判断循环首(x<-7)处理事件().如果真(正在收放≠2或停靠=0)返回().如果真结束延时(10)x=x+步进长度'5_启动窗口.移动(,x,,).判断循环尾()_启动窗口.移动(,0,,).判断(停靠=1)'左x=左边.判断循环首(x<-7)处理事件().如果真(正在收放≠2或停靠=0)返回().如果真结束延时(10)x=x+步进长度'5_启动窗口.移动(x,,,).判断循环尾()_启动窗口.移动(0,,,).判断(停靠=3)'右x=左边y=取屏幕宽度().判断循环首(x>y-_启动窗口.宽度+7)处理事件().如果真(正在收放≠2或停靠=0)返回().如果真结束延时(10)x=x-步进长度'5_启动窗口.移动(x,,,).判断循环尾()_启动窗口.移动(y-_启动窗口.宽度,,,).默认.判断结束正在收放=0_启动窗口.激活()总在最前=真调整层次(#顶层)调整层次(#最高层).子程序__启动窗口_将被销毁设置窗口信息_(取窗口句柄(),#GWL_WNDPROC,原窗口).如果真(时钟≠0)销毁时钟_(取窗口句柄(),1036).如果真结束.如果真(正在收放≠0)正在收放=0.如果真结束将被销毁保存位置()

易语言如何隐藏窗口

3、复制DLL:.版本2.DLL命令设置窗口信息_,整数型,"user32&q掼鸿乡羰uot;,"SetWindowLon爿讥旌护gA",,在窗口结构中为指定的窗口设置信息指定数据的前一个值.参数窗口句柄,整数型,,hwnd,欲为其取得信息的窗口的句柄.参数窗口信息值,整数型,,nIndex,请参考GetWindowLong函数的nIndex参数的说明.参数窗口信息新值,整数型,,dwNewLong,由nIndex指定的窗口信息的新值.DLL命令呼叫窗口函数地址_,整数型,"user32.dll","CallWindowProcA",,CallWindowProcA将消息传答窗口函数 .参数前一窗口函数地址,整数型,,lpPrevWndFunc.参数窗口句柄,整数型,,hwnd.参数消息值,整数型,,msg.参数附加参数1,整数型,,wParam.参数附加参数2,整数型,,lParam.DLL命令复制内存_,,"kernel32.dll","RtlMoveMemory",,CopyMemory.参数pDest,整数型.参数pSrc,MINMAXINFO.参数ByteLen,字节型.DLL命令复制内存1_,,"kernel32.dll","RtlMoveMemory",,CopyMemory1 .参数pDest,MINMAXINFO.参数pSrc,整数型.参数ByteLen,字节型.DLL命令设置时钟_,整数型,"user32.dll","SetTimer",,SetTimer.参数窗口句柄,整数型,,hwnd.参数事件标识符,整数型,,nIDEvent.参数时钟周期,整数型,,uElapse.参数回调函数地址,整数型,,lpTimerFunc.DLL命令销毁时钟_,整数型,"user32.dll","KillTimer",,KillTimer.参数窗口句柄,整数型,,hwnd.参数事件标识符,整数型,,nIDEvent.DLL命令内存清零_,,"kernel32.dll","RtlZeroMemory",,ZeroMemory将一块内存置零.参数目的内存,MINMAXINFO,传址,Destination.参数长度,整数型,,Length

易语言如何隐藏窗口

4、复制自定义数据:.版本2.数据类型坐标,,坐标;POINTAPI.成员横向位置,整数型,,,X坐标.成员纵向位置,整数型,,,Y坐标.数据类型MINMAXINFO,,MINMAXINFO.成员ptReserved,坐标.成员ptMaxSize,坐标.成员ptMaxPosition,坐标.成员ptMinTrackSize,坐标.成员ptMaxTrackSize,坐标

易语言如何隐藏窗口

5、复制常量数据:.版本2.常量GWL_WNDPROC,"-4".常量WM_GETMINMAXINFO,"36",,此消息发送给窗口当它将要改变大小或位置;.常量WM_MOUSEMOVE,"512".常量WM_NCMOUSEMOVE,"160".常量WM_EXITSIZEMOVE,"562".常量WM_MOVING,"534".常量WM_MOVE,"3".常量WM_NCHITTEST,"132".常量WM_NCLBUTTONDOWN,"161".常量WM_NCLBUTTONUP,"162".常量WM_SIZE,"5".常量WM_SIZING,"532".常量WM_SYSCOMMAND,"274".常量WM_KEYUP,"257".常量WM_KEYDOWN,"256"

易语言如何隐藏窗口

6、狂击F5调试程序。

易语言如何隐藏窗口

© 一点知识