注册 登录
编程论坛 VFP论坛

看看这个有没搞头

吹水佬 发布于 2025-09-13 17:41, 1389 次点击
只有本站会员才能查看附件,请 登录

2025.10.29 更新
增加 TreeView 控件
只有本站会员才能查看附件,请 登录












[此贴子已经被作者于2025-10-29 16:50编辑过]

36 回复
#2
nbwww2025-09-13 20:04
吹版出品 必属精品  
#3
hsfisher2025-09-13 21:28
#4
cssnet2025-09-13 23:29
很好!不过,为什么不用现成的 Microsoft Forms 系列控件?
难不成,是担心版权问题?
不至于啊,VFP都没几个是用正版的。
#5
吹水佬2025-09-14 00:44
以下是引用cssnet在2025-9-13 23:29:23的发言:

很好!不过,为什么不用现成的 Microsoft Forms 系列控件?
难不成,是担心版权问题?
不至于啊,VFP都没几个是用正版的。

说到底都是windows api的东西,Forms肯定是代表先进。标准控件也许是为了兼容,windows自身也有不少界面还在用这些标准控件。
在vfp表单中使用windows标准控件有些细节不好处理,vfp可能接管了一些绘制控件的消息来自行绘制,导致win控件有些地方与vfp有冲突。
简简单单用还可以,要好看好用就免了。
#6
schtg2025-09-14 06:17
#7
吹水佬2025-09-14 08:32
以下是引用cssnet在2025-9-13 23:29:23的发言:

为什么不用现成的 Microsoft Forms 系列控件?


用 ActiveX 控件还有个用户体验问题,尤其是对一些“低级”用户,经常会反映什么OLE错误,大都是控件找不到或未注册。
我现在用的电脑就没找到Forms的东西,Microsoft Forms 的控件通常与MS的一些应用安装有关(如Office)。
#8
easyppt2025-09-14 08:43
确实 OLE很烦,API能搞定 太好了

还缺少 单选框、复选框、还有最重要的 表格

这个 label 不能透明 吗 刚开始以为是 只读文本框


VFP的2个梗:
1、unicode
2、新型WEB浏览器交互





[此贴子已经被作者于2025-9-14 08:52编辑过]

#9
cssnet2025-09-14 09:12
完整地定制程序的UI,涉及的界面元素极其繁琐。当初我们放弃制作纯Unicode化界面,也是基于这个原因。

比如说:

界面的最上边一行,VFP的_screen。若程序用到它,首先要定制的是:
点击左上角的软件icon,弹出的控制菜单:【还原/移动/大小/最小化/最大化/关闭】;
右上角:【最小化/最大化/关闭】的Tooltips;
上方第二行:系统菜单和弹出的菜单项。
这里边主要涉及控制盒、菜单栏、菜单项和提示浮动小窗,这几样UI元素。
针对_screen的定制,恐怕要修改vfp9r.dll;针对普通Form的定制,则不妨尝试封装到DLL中。
其中,涉及Menu的一组控件,以及Tooltips控件,未来可能会用到程序的各个角落,且会频繁使用,需谨慎调试。

还有就是自己几乎根本无法解决的,恐怕就是表格控件了,这个自己定制的话,就太夸张啦。
#10
吹水佬2025-09-14 11:42
以下是引用easyppt在2025-9-14 08:43:31的发言:

确实 OLE很烦,API能搞定 太好了

还缺少 单选框、复选框、还有最重要的 表格

这个 label 不能透明 吗 刚开始以为是 只读文本框


VFP的2个梗:
1、unicode
2、新型WEB浏览器交互

单选、复选和表格都有的,表格简单,没有VPF的表格强大。
1、API函数、数据结构、数据类型等的名字带“W〞的应该都支持Unicode。
2、WebView2可以与VFP交互,甚至可以运行VFP代码。
#11
吹水佬2025-09-14 11:56
回复 9楼 cssnet
最好不要在VFP表单创建Win控件,而用Win窗口创建Win控件。
在表单创建Win控件会有不少问题,如控件重绘、事件重载、虚函数等问题,给编程带来不少麻烦。


#12
吹水佬2025-09-14 21:11
以下是引用easyppt在2025-9-14 08:43:31的发言:

这个 label 不能透明 吗 刚开始以为是 只读文本框

透明还没测试过,设置颜色测试过,ComboBox和Button无效。
ComboBox由EditBox、ListBox和Button组合,目前只知道ComboBox颜色设置无效并对ListBox的颜色设置有影响。
Button也有点特殊,颜色设置无效,好像与系统主题设置有关。

可以试试父窗口不用vfp表单,改用CreateWindow。
#13
金太狼2025-09-15 12:04
就是棒。
#14
z126892025-09-16 10:59
膜拜大神!
#15
吹水佬2025-09-21 00:52
一楼更新
简单测试还有不少细节问题,特别是键盘插入光标在vfp控件与win控件之间切换时还没找到较好的方法。
还有按钮的颜色要自己绘制,简单绘制前景背景边框色也觉得有点复杂,效果不太理想,暂不搞了。
有空完全用vfp代码写看看效果如何。
#16
sych2025-09-21 09:16
谢谢分享
#17
schtg2025-09-21 09:18
,谢谢!
#18
吹水佬2025-09-26 15:44
一楼更新
完善一下键盘焦点的问题和一些简单的操作示例。


#19
sych2025-09-26 16:35
越来越好用了

#20
schtg2025-09-26 17:33
#21
吹水佬2025-09-26 20:56
一楼更新2
修复一个BUG,字符串转换函数内存分配释放问题。

#22
schtg2025-09-27 06:21
#23
吹水佬2025-10-14 23:24
一楼 2025.10.14 更新
增加日期、时间和表格控件
#24
cssnet2025-10-14 23:41
以下是引用吹水佬在2025-10-14 23:24:48的发言:

一楼 2025.10.14 更新
增加日期、时间和表格控件


报告大佬!刚下载完,文件就不见啦。再一看,9月26日那一个,也不见啦。
一查,果然是被 Windows 11 的“Windows 安全中心(Microsoft Defender)”杀掉了!
恐怕不能再用VC编译成DLL了,改用纯VFP代码来写吧。


只有本站会员才能查看附件,请 登录
#25
吹水佬2025-10-15 00:44
把那些防这防那的都先关掉
下载了再扫描看看是什么鬼东西
源码都有,cpp是用GCC的。
#26
吹水佬2025-10-15 07:25
windows10病毒防护设置开了实时防护下载正常
#27
吹水佬2025-10-15 07:40
以下是引用cssnet在2025-10-14 23:41:03的发言:

改用纯VFP代码来写吧。

你可以参考C代码简单试试用vfp表单做父窗口调用API CreateWindowExW() 创建EDIT子控件,看看有冇搞头。
我就觉得全用vfp代码写要做得满意还有不少难解的问题,没那么多时间去试了。

#28
sam_jiang2025-10-15 20:14
事实上微软vfp的grid控件是非常了不起的控件,比那个flexgrid强不知道多少,但也有很多诟病,很想在vfp程序层面重现这个控件,一直没成功。。。
#29
cssnet2025-10-15 23:17
以下是引用吹水佬在2025-10-15 00:44:08的发言:

把那些防这防那的都先关掉
下载了再扫描看看是什么鬼东西
源码都有,cpp是用GCC的。


我意思是,最终用户并不明白这些啊!
倘若将dll打包进软件包之后,被微软或360,事但一个报毒,那么会很鬼麻烦的!下载网站直接拒收。除非提供“良民证”,消除一切误报。
你自己知道没毒那不做数,必须安全中心认定你没毒,才成。
#30
吹水佬2025-10-16 10:56
回复 29楼 cssnet
商品化就走商业道,windows很多功能也要有权限、证书等,难道就要用DOS了?
#31
cssnet2025-10-17 12:07
以下是引用吹水佬在2025-10-16 10:56:48的发言:

商品化就走商业道,windows很多功能也要有权限、证书等,难道就要用DOS了?


其实不完全是"商业化、商业道"问题。

说,狐友A将源程序打包分享给狐友B。
结果,狐友B一收下来,压缩包就被自动杀掉了——这狠不利于与他人交流分享啊!
这导致写出来的程序,只适宜在自己的电脑上自嗨,编译好的DLL,则很难跟他人分享。
这就是被杀毒软件误报、误杀,最不便的困扰与副作用啊!
曾有一段时间,我们用 Inno Setup 编译出来的安装文件,就被360疯狂报毒,搞得连安装程序都几乎不敢弄了。

#32
吹水佬2025-10-17 12:59
回复 31楼 cssnet
不是商品化就不是问题啦,要源代码有,要编译码也有,喜欢怎样搞都得。
不用钱的东西就不要求太高了,能用会用就拿去搞得了。
若会被他杀掉可以先把他杀掉,不能坐以待毙。


#33
sych2025-10-17 14:32
自己嗨,根本不在乎报毒
#34
cssnet2025-10-18 10:41
以下是引用吹水佬在2025-10-17 12:59:18的发言:

不是商品化就不是问题啦,要源代码有,要编译码也有,喜欢怎样搞都得。
不用钱的东西就不要求太高了,能用会用就拿去搞得了。
若会被他杀掉可以先把他杀掉,不能坐以待毙。


之前没细看大佬的源码,事关一向感觉,自己一手一脚去写UI控件,太复杂,不太现实。
今天看一眼,震惊地发现:不是VC++,是Dev-C++!
还是大佬您比较老古董啊!
这么一想,有可能Dev-C++被MS针对了。换VC编译一下,估计就不会误报了。
话说,我一般也就用C写写VFP不太方便处理的算法库,C++其实极少正儿八经用。
#35
吹水佬2025-10-21 20:47
回复 34楼 cssnet
Dev只是一个IDE,也可以选择用其他编译器,我是用GCC。
只是调用常用的 windows api 也要封杀,说明不是代码问题,是人的意识问题。
#36
吹水佬2025-10-29 16:51
一楼更新
2025.10.29 更新
增加 TreeView 控件
#37
sych2025-10-30 10:16
越来越完善了,谢谢辛苦付出
1