ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VFB组件:Form控件(主窗口)

2021-12-26 14:33:54  阅读:208  来源: 互联网

标签:检索 控件 窗口 Form 句柄 VFB 指定 线程


主窗口,窗口都是操作系统提供的,其它控件都在这个主窗口里面。

控件也是属于窗口,它是主窗口的一个子窗口,拥有了特定的功能后,我们就叫他控件。

主窗口其实也是属于操作系统桌面的子窗口。也就是说控件的父窗口是主窗口,主窗口的父窗口是桌面。

常用设计属性:外观和标题

高手们,还可以自定义所有窗口样式 ,当然一般情况下不需要自己定义,改改属性即可,所有属性就是调整窗口样式。

 还有特殊属性,很多是 VFB 特有的功能,其它编程需要自己代码实现,而VFB就一个选项。

最大和最小:可以限制窗口调节大小。设0是无限制。

无焦点: 窗口永远不会得到焦点,避免提示窗口抢走输入文字

鼠标穿透:鼠标永远无法点击这个窗口,直接穿过,点中此窗口后面的东西,用于显示窗口

透明度:让窗口半透明

透明颜色:让窗口某个颜色变全透明

阴影:有边框的窗口,系统自动加个阴影,而无边框的窗口,可以选择它,增加个阴影

常用事件:创建、显示、关闭

还可以把窗口作为普通画板的事件:FormPaintEnd

 

可以用封装的 yGDI 方便的在窗口上画任意东西。

代码操作有很多对象封装,可以一个一个试试,这里就不多说了

ME 对象,是表示当前窗口,也可以用  窗口名.xxx  ,每个成员都有中文说明

 

显示窗口

Form1.Show 父窗口,模态,用户数据      参数可以省略,执行1次显示1个窗口,可以显示N个窗口。

关闭窗口

 Form1.Close

省略写法

自己窗口模块下用  Me 代替窗口名,如: Me.Close 

自己窗口模块下,控件直接打名字即可,不需要打窗口名,如:  Label1.xxx  ,在其它窗口里,需要  Form1.Label1.xxx   的全称。

 窗口API宏

GET_X_LPARAM   从指定的LPARAM值中检索带符号的x坐标 。
GET_Y_LPARAM   从给定的LPARAM值中检索带符号的y坐标 。  
HIBYTE         从给定的16位值中检索高位字节。
HIWORD         从指定的32位值中检索高阶字。
LOBYTE         从指定值检索低位字节。   
LOWORD         从指定的值检索低位字。
MAKELONG       通过串联指定的值来创建LONG值。
MAKELPARAM     创建一个值,用作消息中的 lParam参数。宏连接指定的值。
MAKELRESULT    创建一个值,用作窗口过程的返回值。宏连接指定的值。
MAKEWORD       通过串联指定的值来创建WORD值。
MAKEWPARAM     创建一个值,用作消息中的wParam参数。宏连接指定的值。

常用API

GetParent        获取父窗口
SetParent        指定窗口新父窗口
FindWindowEx(t,0,"类名","窗口名")   '查找窗口  
GetCurrentProcessId    ' 获取自己进程ID
GetCurrentThreadId       获取当前线程ID
GetCurrentThread         获取当前线程句柄
SetProp                       为窗口增加一个数据 
GetProp                        读取窗口增加一个数据  
RemoveProp                      用完后,消除窗口数据
UpdateWindow             更新窗口 
InvalidateRect(sHWnd, Null, 1)    刷新显示

AdjustWindowRect               根据所需的客户端矩形大小,计算所需的窗口矩形大小。
AdjustWindowRectEx              
AllowSetForegroundWindow       使指定的进程能够使用SetForegroundWindow函数设置前景窗口。
AnimateWindow                  在显示或隐藏窗口时使您产生特殊效果。动画有四种类型:滚动,滑动,折叠或展开以及alpha混合淡入。
AnyPopup                       指示屏幕上是否存在拥有的,可见的,顶级弹出窗口或重叠的窗口。该功能搜索整个屏幕,而不仅是调用应用程序的客户区。 
ArrangeIconicWindows           排列指定父窗口的所有最小化(图标)子窗口。 
BeginDeferWindowPos            为多窗口位置结构分配内存,并将句柄返回到该结构。
BringWindowToTop               将指定的窗口置于Z顺序的顶部。如果该窗口是顶级窗口,则将其激活。如果该窗口是子窗口,则与该子窗口关联的顶级父窗口被激活。
CalculatePopupWindowPosition   使用指定的锚点,弹出窗口的大小,标志和可选的排除矩形来计算适当的弹出窗口的位置。
CascadeWindows                 级联指定父窗口的指定子窗口。 
ChangeWindowMessageFilter      修改指定窗口的用户界面特权隔离(UIPI)消息过滤器。
ChangeWindowMessageFilterEx
ChildWindowFromPoint           确定属于父窗口的子窗口中有哪些包含指定点。搜索仅限于直接子窗口。不搜索孙子项和更深的后代窗口。
ChildWindowFromPointEx
CloseWindow                    最小化(但不破坏)指定的窗口。
CreateWindow                   创建一个重叠窗口,弹出窗口或子窗口。
CreateWindowEx
DeferWindowPos                 更新指定窗口的指定多窗口–位置结构。然后,该函数将句柄返回到更新后的结构。
DeregisterShellHookWindow      注销指定的Shell窗口,该窗口已注册以接收Shell挂钩消息。
DestroyWindow                  销毁指定的窗口。该函数将WM_DESTROY和WM_NCDESTROY消息发送到窗口以将其停用并从中移出键盘焦点。
EndDeferWindowPos              在单个屏幕刷新周期中同时更新一个或多个窗口的位置和大小。
EndTask                        强制关闭指定的窗口。
EnumChildProc                  与EnumChildWindows函数一起使用的应用程序定义的回调函数。它接收子窗口句柄。
EnumChildWindows               通过将句柄传递给每个子窗口并依次传递给应用程序定义的回调函数,可以枚举属于指定父窗口的子窗口。
EnumThreadWindows              通过将句柄传递给每个窗口,依次传递给应用程序定义的回调函数,可以枚举与线程关联的所有非子窗口。
EnumThreadWndProc              与EnumThreadWindows函数一起使用的应用程序定义的回调函数。它接收与线程关联的窗口句柄。
EnumWindows                    通过将句柄传递给每个窗口,依次传递到应用程序定义的回调函数,可以枚举屏幕上所有的顶级窗口。
EnumWindowsProc                与EnumWindows或EnumDesktopWindows函数一起使用的应用程序定义的回调函数。它接收顶级窗口句柄。
FindWindow                     检索顶级窗口的句柄,该窗口的类名和窗口名与指定的字符串匹配。
FindWindowEx                   检索其类名和窗口名与指定的字符串匹配的窗口的句柄。该功能搜索子窗口,从指定子窗口之后的子窗口开始。此功能不执行区分大小写的搜索。
GetAltTabInfo                  如果是应用程序切换(ALT + TAB)窗口,则检索指定窗口的状态信息。
GetAncestor                    检索到指定窗口的祖先的句柄。
GetClientRect                  检索窗口的工作区的坐标。客户坐标指定客户区域的左上角和右下角。
GetDesktopWindow               检索桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是在其上绘制其他窗口的区域。
GetForegroundWindow            检索前景窗口(用户当前正在使用的窗口)的句柄。系统向创建前景窗口的线程分配的优先级比向其他线程分配的优先级高。
GetGUIThreadInfo               检索有关活动窗口或指定GUI线程的信息。
GetLastActivePopup             确定指定窗口拥有的哪个弹出窗口最近处于活动状态。
GetLayeredWindowAttributes     检索分层窗口的不透明度和透明度颜色键。
GetNextWindow                  检索Z-Order中下一个或上一个窗口的句柄。下一个窗口在指定窗口的下方;前一个窗口在上方。
GetParent                      检索指定窗口的父级或所有者的句柄。 
GetProcessDefaultLayout        检索在创建没有父级或所有者的窗口时使用的默认布局。
GetShellWindow                 检索命令行管理程序的桌面窗口的句柄。
GetSysColor                    检索指定显示元素的当前颜色。显示元素是窗口和显示在系统显示屏上的部分。
GetTitleBarInfo                检索有关指定标题栏的信息。
GetTopWindow                   检查与指定父窗口关联的子窗口的Z顺序,并在Z顺序顶部检索子窗口的句柄。 
GetWindow                      检索与指定窗口具有指定关系(Z顺序或所有者)的窗口的句柄。
GetWindowDisplayAffinity       从任何过程中检索给定窗口的当前显示相似性设置。 
GetWindowInfo                  检索有关指定窗口的信息。
GetWindowModuleFileName        检索与指定窗口句柄关联的模块的完整路径和文件名。
GetWindowPlacement             检索显示状态以及指定窗口的还原,最小化和最大化位置。 
GetWindowRect                  检索指定窗口的边界矩形的尺寸。尺寸以相对于屏幕左上角的屏幕坐标给出。 
GetWindowText                  将指定窗口标题栏的文本(如果有的话)复制到缓冲区中。
GetWindowTextLength            检索指定窗口的标题栏文本的长度(以字符为单位)(如果窗口具有标题栏)。
GetWindowThreadProcessId       检索创建指定窗口的线程的标识符,以及可选的创建窗口的进程的标识符。
InternalGetWindowText          将指定窗口标题栏的文本(如果有的话)复制到缓冲区中。  
IsChild                        确定窗口是指定父窗口的子窗口还是子窗口。
IsGUIThread                    确定调用线程是否已经是GUI线程。它还可以选择将线程转换为GUI线程。
IsHungAppWindow                确定系统是否认为指定的应用程序没有响应。
IsIconic                       确定指定的窗口是否最小化(图标)。
IsProcessDPIAware              确定当前进程是否了解每英寸点数(dpi),以便调整UI元素的大小以补偿dpi设置。
IsWindow                       确定指定的窗口句柄是否标识现有窗口。
IsWindowUnicode                确定指定的窗口是否为本地Unicode窗口。
IsWindowVisible                确定指定窗口的可见性状态。
IsZoomed                       确定窗口是否最大化。
LockSetForegroundWindow        前台进程可以调用LockSetForegroundWindow函数来禁用对SetForegroundWindow函数的调用。
LogicalToPhysicalPoint         将窗口中点的逻辑坐标转换为物理坐标。
MoveWindow                     更改指定窗口的位置和尺寸。对于顶级窗口,位置和尺寸是相对于屏幕的左上角的。
OpenIcon                       将最小化的(图标)窗口恢复到其先前的大小和位置;然后激活窗口。
PhysicalToLogicalPoint         将窗口中点的物理坐标转换为逻辑坐标。
RealChildWindowFromPoint       在指定点检索子窗口的句柄。搜索仅限于直接子窗口;不搜索孙辈和更深的后代窗口。
RealGetWindowClass             检索指定窗口类型的字符串。
RegisterShellHookWindow        注册指定的命令行管理程序窗口,以接收有关命令行管理程序应用程序有用的事件或通知的某些消息。
SetForegroundWindow            将创建指定窗口的线程带入前台并激活该窗口。键盘输入直接指向窗口,并且为用户更改了各种视觉提示。
SetLayeredWindowAttributes     设置分层窗口的不透明度和透明度颜色键。
SetParent                      更改指定子窗口的父窗口。
SetProcessDefaultLayout        仅在当前运行的进程没有父级或所有者的情况下创建窗口时,更改默认布局。
SetProcessDPIAware             将进程默认的DPI感知设置为系统DPI感知。
SetSysColors                   设置指定显示元素的颜色。显示元素是窗口和显示在系统显示屏上的各个部分。
SetWindowDisplayAffinity       将内核模式下的显示相似性设置存储在与窗口关联的hWnd上。
SetWindowFeedbackSettings      设置给定窗口句柄的反馈设置。
SetWindowPlacement             设置显示状态以及指定窗口的还原,最小化和最大化位置。
SetWindowPos                   更改子窗口,弹出窗口或顶级窗口的大小,位置和Z顺序。
SetWindowText                  更改指定窗口标题栏的文本(如果有的话)。如果指定的窗口是控件,则更改控件的文本。
ShowOwnedPopups                显示或隐藏指定窗口拥有的所有弹出窗口。  
ShowWindow                     设置指定窗口的显示状态。
ShowWindowAsync                设置窗口的显示状态,而无需等待操作完成。
SoundSentry                    触发视觉信号以指示正在播放声音。
SwitchToThisWindow             将焦点切换到指定的窗口,并将其置于前景。
TileWindows                    平铺指定父窗口的指定子窗口。
UpdateLayeredWindow            更新分层窗口的位置,大小,形状,内容和半透明。 
UpdateLayeredWindowIndirect 
WindowFromPhysicalPoint        检索包含指定物理点的窗口的句柄。
WindowFromPoint                检索包含指定点的窗口的句柄。

全部消息事件:如同之类化窗口一样功能,得到窗口的全部消息。

 

 

标签:检索,控件,窗口,Form,句柄,VFB,指定,线程
来源: https://blog.csdn.net/yfvb2010/article/details/122153637

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有