主窗口,窗口都是操作系统提供的,其它控件都在这个主窗口里面。
控件也是属于窗口,它是主窗口的一个子窗口,拥有了特定的功能后,我们就叫他控件。
主窗口其实也是属于操作系统桌面的子窗口。也就是说控件的父窗口是主窗口,主窗口的父窗口是桌面。
常用设计属性:外观和标题
高手们,还可以自定义所有窗口样式 ,当然一般情况下不需要自己定义,改改属性即可,所有属性就是调整窗口样式。
还有特殊属性,很多是 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 检索包含指定点的窗口的句柄。
全部消息事件:如同之类化窗口一样功能,得到窗口的全部消息。