论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
搜索
登录
搜索
勇芳
累计撰写
330
篇文章
累计收到
0
条评论
首页
栏目
论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
教程和帮助
2026-1-20
VisualFreeBasic控件_Check 选择
选择和不选择控件,选择时,左边会打勾。 一般用于软件中的选项 常用事件,是用户点击事件。 '[Form1.Check1]事件 : 单击 'hWndForm 当前窗口的句柄(WIN系统用来识别窗口的一个编号,如果多开本窗口,必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码) 'hWndControl 当前控件的句柄(也是窗口句柄,如果多开本窗口,必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 ) Sub Form1_Check1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) End Sub 常用属性是获取或设置“选择”或“不选择” Check1.Value = True Dim aa As Long aa = Check1.Value
2026年-1月-20日
77 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Text 文本
文本编辑框,主要是用来让用户输入文字的。 默认是单行模式,可以在属性里设置成多行模式,还有滚动条 配合滚动条和自动滚动模式,设置成各种方式的文本框。比方只有垂直滚动条,没有水平滚动,会自动回行。 代码中主要使用的属性,获取和设置文本 Text1.Text = "这里是文本" Dim aa As String aa = Text1.Text
2026年-1月-20日
47 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Command 按钮
按钮,是用让用户按的,就是鼠标去点击。 用户点击按钮后,有个按钮事件,我们在事件里,写用户点击按钮以后要处理的代码功能 设计窗口,双击按钮,就进入到事件代码 '[Form1.Command1]事件 : 单击 'hWndForm 当前窗口的句柄(WIN系统用来识别窗口的一个编号,如果多开本窗口,必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码) 'hWndControl 当前控件的句柄(也是窗口句柄,如果多开本窗口,必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 ) Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) 这里写事件要处理的代码 End Sub 按钮常见属性,就是 Command1.Caption ="按钮文字" Command1.Enabled = True Command1.Visible = True
2026年-1月-20日
69 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Frame 框架
在窗口中显示一个框架,就只是一个框架显示,拖动框架,里面有控件,也会被拖动 当框架内有其它控件时,那么里面的控件就属于该框架的控件 当框架显示和隐藏,那么框架内的控件也会自动显示或隐藏 Frame1.Visible = ??? 当框架设置位置,框架内所有控件也会自动跟随移动位置 Frame1.Move x,y 这种模式,有人称为:“容器” 也可以称为虚拟容器。
2026年-1月-20日
62 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Image 图像
在窗口中,显示一幅图像。 在属性里选择,会打开图像管理器,添加一个图像文件(此图像文件会被打包入EXE中) 假如需要加载图像文件显示,就需要写代码 Image1.Picture = App.Path & "图片文件.png" 支持矢量图标 Image1.VIco ="a00102TP.7YUXdY_bn_ibnas`naiXd+a201.:_Ubn_U`Zas`Z+a.42Ss.7\FZZ`ZZZ+a*6Zd\F`Z\F+a*8]_`Z]_+a*8_A`Z_A+a*7g`n^d`n+a101.:XFWiXFaiU_aiUAaUUAUsUUUUW_UUW_WK+a*5PUU]AUU]AWA\dWKXnWKXPVn+a*4]sUU_sUU`FUi`FWK]sWL+f.41Ss.7[jUd[rSpY`SjYcU`" 图标制作 使用 VisualFreeBasic 自带的 【矢量图标编辑器】 编辑一个,里面自带了很多图标,可以复制过来即可
2026年-1月-20日
77 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Shape 形状
在窗口上,显示几何图形,可以设置为 矩形、椭圆、三角等等 还有填充的颜色,渐变等,可以在属性中设置
2026年-1月-20日
58 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Line 线条
在窗口上显示一个线条,可以设置箭头,颜色和线条宽细
2026年-1月-20日
58 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Label 文字
标签控件,就只是在窗口上摆上一个显示文字的标签,无需更多说明 其属性有 文字、颜色、字体等等
2026年-1月-20日
76 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_Form窗口
一个应用软件,都会有一个窗口 在设置界面的右边,是可以改变窗口的属性,还可以查看该窗口的全部事件和成员。 鼠标双击窗口,就进入控件代码 窗口分类 主窗口(启动窗口) ================================= 当打开一个EXE后,有一个窗口会自动显示出来,称为 主窗口,这是窗口是唯一性的,当关闭这个窗口后,整个软件就关闭了。 主窗口是生产出软件后自动显示出来的,可以在工程属性中,指定一个窗口为主窗口。在工程属性里称为“启动窗口” 副窗口 ========================================== 在工程中,新增窗口,然后代码中显示出的窗口,都是副窗口,副窗口随意关闭,不会影响到整个软件 点击“+”号,选择“新增窗体”(窗口和窗体,意思是相同的,只是个名词,以后遇到,有时会说窗口,有时会说窗体,其实是一个意思,明白就可以,不用纠结。) 在标签上显示的是,窗口名词和文件名 可以设置备注,那么就显示备注,而不是窗口名 可以在窗口属性中看出来 窗口名词,默认是英文的,可以在属性里设置为中文的,下列是显示副窗口代码 怪物信息.Show 主窗口和副窗口,相互独立,互不干扰。 从窗口 ======================================== 显示的窗口,永远在主窗口上面,激活这个窗口,同时也会激活主窗口,这个窗口就叫从窗口。 显示从窗口的代码,就是增加一个主窗口句柄。 怪物信息.Show(Form1.hWnd) 此时,“怪物信息”窗口就是“Form1”窗口的从窗口,它们的关系,称为“主从”关系 注意:建立起“主从”关系的后窗口,当关闭主窗口后,从窗口也会被自动关闭 这里的“主从”关系的 主窗口,并不是单指窗口分类的主窗口,副窗口,也可以有从窗口,当关闭副窗口后,副窗口的从窗口都会被自动关闭,而且被自动关闭的从窗口不会产生“WM_Close”关闭事件,但会有“WM_Destroy”销毁事件 模式窗口 ============================= 模式窗口是从窗口的扩展功能。也属于从窗口。比方对话框窗口,就是模式窗口。 显示窗口代码,第2个参数为 True 时,此时显示窗口后,主窗口或副窗口,将会被禁止使用,而且代码执行会在此行等待,一直到这个从窗口关闭以后,才会继续执行下一行代码。 怪物信息.Show(Form1.hWnd,True) 下一行代码,需要等待从窗口关闭才继续执行 子窗口 ======================================== 一个窗口在另一个窗口里面,称为子窗口,要想让一个窗口成为子窗口,需要设置窗口属性“子窗口” 然后显示窗口代码就是和显示从窗口一样,它们的关系,称为“父子”关系,“Form1”是父窗口。 怪物信息.Show(Form1.hWnd) 怪物信息.Move 0, 0 ‘重新设置位置,此位置是相对于父窗口 执行代码后,会发现窗口里面有窗口 当然,这样的方式,还可以再套娃,子窗口里面也可以套子窗口,一直下去........ 子窗口还有一个 MDI子窗口,这个是在 WIN3.x 版时比较流行,后来就逐渐消失,虽然如今的 WIn系统还是支持,我觉得也没有学习的必要,感兴趣的话就自己网上搜索。 窗口显示 显示窗口代码,后面有3个可选参数 Form2.Show '显示副窗口 Form2.Show(Form1.hWnd) '显示从窗口 Form2.Show(Form1.hWnd, True) '显示模式窗口 Form2.Show(,, 99) '传递用户自定义参数 注意:这里的“.Show” 显示窗口,其实有2个功能,1.先创建窗口实体,2.显示出窗口。源自VB6的做法,假如窗口没用“.Show” 显示出来,因为窗口实体根本不存在,对于 Form2 的任何操作都是无效的操作。要想对一个窗口操作,必须先创建实体,就是用“.Show” 当窗口被创建出实体后,可以用以下代码显示和隐藏窗口 Form2.Visible = True '显示窗口 Form2.Visible = False '隐藏窗口 下面说一下,传递的用户自定义参数,传递到什么地方?两个地方,就是创建事件和显示事件(注意是第一次显示,以后隐藏再显示是不会触发此事件) '[Form1]事件 : 完成创建窗口及所有的控件后,此时窗口还未显示。注:自定义消息里 WM_Create 此时还未创建控件和初始赋值。 'hWndForm 当前窗口的句柄(WIN系统用来识别窗口的一个编号,如果多开本窗口,必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码) 'UserData 来自显示窗口最后1个参数,例: Form2.Show(父窗口句柄,模式,UserData) Sub Form1_WM_Create(hWndForm As hWnd,UserData As Integer) End Sub '[Form1]事件 : 窗口完全显示后。 'hWndForm 当前窗口的句柄(WIN系统用来识别窗口的一个编号,如果多开本窗口,必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码) 'UserData 来自显示窗口最后1个参数,例: Form2.Show(父窗口句柄,模式,UserData) Sub Form1_Shown(hWndForm As hWnd, UserData As Integer) End Sub 重复显示 默认情况下,你执行2次显示窗口代码,是无法显示出2个窗口的 Form2.Show '显示副窗口 Form2.Show '显示副窗口 此时只显示一个,需要在窗口属性中,选择多开属性,才会执行几次,重复创建并显示出这个窗口 重复开启窗口以后,你要设置该窗口属性,但由于重复开了N个窗口,代码是无法知道你具体给那个窗口操作的,因此这里就必须用到了窗口句柄,当你创建一个窗口后,WIn操作系统就给该窗口分配一个唯一的数值,称为窗口句柄 在没个窗口或控件的事件,都有主窗口句柄 Sub Form2_Shown(hWndForm As hWnd,UserData As Integer) Form2.hWndForm = hWndForm Form2.Visible =True End Sub Sub Form2_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) Form2.Command1.hWndForm = hWndForm Form2.Command1.Visible = True End Sub 以上是自己窗口事件里,使用多开窗口的控件方法,要是在别的地方使用,就需要自己事先管理好重复多开的窗口句柄 Dim 多开窗口句柄 As hWnd 多开窗口句柄 = Form2.Show() '显示副窗口 显示窗口属性,返回的是该窗口实体的窗口句柄。 具体如何管理,这看你自己的实际需求和代码逻辑了。这里就不过多阐述。 因此,重复多开窗口后,想修改控件,必须先设置窗口句柄。 窗口类名 窗口有一个特殊属性名字,类名。意思就是分类的名字,同一个软件下面,窗口的分类名是唯一的,不允许重复。 类名,也可以用来搜索窗口,获得其句柄 Dim 窗口句柄 As hWnd 窗口句柄= FindWindow ("类名","窗口标题") 窗口句柄= FindWindowEx (父窗口句柄,窗口句柄之后, "类名","窗口标题") NULL 表示所有的 窗口句柄= FindWindow (NULL,NULL) 窗口句柄= FindWindowEx (父窗口句柄,窗口句柄之后, NULL,NULL) 常见窗口相关的API 父 窗 口: API:GetParent(HWnd) 窗口标识:(控件ID) API:GetDlgCtrlID(HWnd) 窗口样式:AfxGetWindowStyle If (Style And WS_BORDER)=WS_BORDER Then WS_CLIPCHILDREN 排除在父窗口内绘图时子窗口占用的区域。创建父窗口时使用此样式。 WS_CLIPSIBLINGS 当某个子窗口收到WM_PAINT消息时,WS_CLIPSIBLINGS样式会将所有其他重叠的子窗口剪切到要更新的子窗口的区域之外。 WS_GROUP 窗口有一个水平滚动条 WS_MAXIMIZEBOX 窗口有一个最大化按钮。 WS_MINIMIZEBOX 窗口有一个最小化按钮。 WS_OVERLAPPED 窗口是一个重叠的窗口。重叠的窗口有标题栏和边框。 WS_POPUP 窗口是一个弹出窗口。 WS_SIZEBOX 窗口有一个尺寸边框。 WS_SYSMENU 窗口的标题栏上有一个窗口菜单。 WS_TABSTOP 窗口是一个控件,当用户按下TAB键时可以接收键盘焦点。 WS_TILED 窗口是一个重叠的窗口。重叠的窗口有标题栏和边框。 WS_VISIBLE 窗口最初是可见的。 扩展样式:AfxGetWindowExStyle WS_EX_CLIENTEDGE 窗口边缘有凹陷的边缘。 WS_EX_LAYERED 窗口是分层的窗口。请注意,这不能用于子窗口。 WS_EX_LEFT 该窗口具有通用的左对齐属性。这是默认设置。 WS_EX_LTRREADING 使用从左至右的阅读顺序属性显示窗口文本。这是默认设置。 WS_EX_RIGHTSCROLLBAR 垂直滚动条(如果存在)位于客户区的右侧。这是默认设置。 WS_EX_WINDOWEDGE 窗口边缘有凸起的边缘。 ---------------------------------------- 桌面位置: API:GetWindowRect 父窗位置: API:MapWindowPoints 客 户 区: API:GetClientRect ---------------------------------------- 实例句柄:API:GetWindowLongPtr(HWND, GWLP_HINSTANCE) 带Ptr 是64位32位通用,常量里多了 LP 菜单句柄:API:GetMenu(HWND) 过程地址:API:GetWindowLongPtr(HWND, GWLP_WNDPROC) 窗口进程: API:GetClassLong(HWND, GCLP_WNDPROC) 用户数据:API:GetWindowLongPtr(HWND, GWLP_USERDATA) ---------------------------------------- 是否可见:API:IsWindowVisible(Hwnd) 允许使用:API:IsWindowEnabled(Hwnd) 是否置顶:API:(AfxGetWindowExStyle(hwnd) And WS_EX_TOPMOST) =WS_EX_TOPMOST 最小化否:API:IsIconic(hwnd) 最大化否:API:IsZoomed(hwnd) 宽字符窗:API:IsWindowUnicode(hwnd) 当前窗口 在自己的窗口写代码,可以用 me 来表示 下面的代码是等效的 Me.Enabled = True Form1.Enabled =True Me.Command1.Enabled = True Form1.Command1.Enabled = True me 在那个窗口的代码中,就表示那个窗口。 在自己窗口中,可以省略窗口名,直接打控件名来操作控件 Command1.Enabled = True 当在其它窗口中,你就必须加上窗口名称 Form1.Command1.Enabled = True
2026年-1月-20日
83 阅读
0 评论
VisualFreeBasic编程文档
2026-1-20
VisualFreeBasic控件_控件数组
当多个相同类型的控件,名称一样时,就用索引来表示控件,称为控件数组 复制一个控件,然后粘贴,就会提示是否创建控件数组 在控件属性下拉菜单中,可以看到控件的数组 你可以创建无数的控件数组,当不建议搞太多的控件数组。 控件数组的事件比非控件数组,多了一个索引参数 Sub Form1_Label1_WM_LButtonDown(ControlIndex As Long, hWndForm As hWnd, MouseFlags As Long, xPos As Long, yPos As Long) End Sub ControlIndex 表示是那个索引的控件触发了事件 操作控件,也是用索引,或直接数字 Label1(ControlIndex).Caption ="控件数组" Label1(1).Caption ="控件数组" 就是控件名称后面,增加 (索引) 控件属性里,可以修改索引,删除索引,将会取消控件数组 注意: 当取消控件数组,但是还有其它同名存在,是无法取消的, 当你只有一个控件,而设置控件索引为 100 或几万,系统后台会创建同数量的控件类,将会占用很多内存和CPU,因此,用到几个控件,索引设置几个。 控件索引从 0 开始。
2026年-1月-20日
71 阅读
0 评论
VisualFreeBasic编程文档
27
28
29
30
31