注册 登录
编程论坛 VFP论坛

话说,VFP有无可用/好用/易用的“Markdown编辑框”控件?

cssnet 发布于 2025-06-14 14:59, 2393 次点击
我拿这问题请教DeepSeek,结果,它审慎地建议我,倒不如换一种现代的、流行的编程语言。
用VFP实现Markdown控件,性价比太低,不划算。
大意是。


准确地下一个定义:
===================
Markdown编辑框控件,指的是一种可以实时渲染MD标记,并可任意编辑当中文字的“标记文本编辑框”控件;必要时,可一键切换至“源码RAW模式”,以便修改MD标记;并可一键切换回“实时渲染格式文档模式”,继续编辑格式文档。
===================
其实,在线版的Markdown编辑器,大多正是如此这般东东。只不过,许多Markdown编辑器是一左一右两个窗口,左边源码,右边预览而已。那样子实现太笨拙了!试想,若richtextbox控件,也像这样子分左、右两栏:左边编辑RTF源码,右边显示RTF渲染效果,VFP或VB6程序,还能好好地用richtextbox控件去取代Editbox控件,展示格式并编辑格式文本么?

我们需要的,就是这样一个可简单地取代Richtextbox或Editbox控件的MdTextbox控件啊——

凡是原先用Richtextbox的表单,都可以删除这个Richtextbox,改换成MdTextbox,实现几乎一样的业务逻辑;
凡是原先用Editbox的表单,都可以删除这个Editbox,改换成MdTextbox,实现几乎一样的业务逻辑;
甚至,凡是原先用Textbox的表单,都可以删除这个Textbox,改换成MdTextbox,实现几乎一样的业务逻辑。



MD的好处是,傻瓜都能看懂!
因为本质上,MD只是“纯TXT文本 + 简单几种格式标记”,阅读MD源码,跟阅读TXT,最终用户的阅读体验,差别并不大,甚至几乎可忽略不计。
这么说半天,有些抽象。咱不妨作一个“样本对照实验”:
你用记事本分别打开一份MD源码,和一份RTF源码,分别阅读试试!



[此贴子已经被作者于2025-6-16 11:25编辑过]

59 回复
#2
cssnet2025-06-14 16:43
之所以提出这个问题,实因学习前辈高手提供的这一个东东:
https://

最快捷的方式,便是打开并预览本地下载的“.MD”文件(Markdown):
functions_alphabetical.md
functions_group.md
Libraries.md
README.md
samples_alphabetical.md
samples_group.md

里边有某VFP大神写的针对Windows API应用的最最专业的VFP代码范例几百上千个。
可惜,作者用VFP写的应用程序apiviewer在我的windows 11中好像用不起来,右半边浏览器控件可能过时了,一片空白。
所以,看MD才是正解!

话说,MD(Markdown)是github的标配,她可能是本世纪发明的最伟大的文本标记语言!

#3
iswith2025-06-14 17:15
有句话怎么说的!你要鸡给你下蛋吃可以!但要鸡一边在高压锅里给你下蛋吃,又要吃完蛋,再吃肉——就有点过份了!
你把这些搞定,相当于把net4.x的类用VFP语言封装的一遍,而且可能质量上比它还高。

[此贴子已经被作者于2025-6-14 18:02编辑过]

#4
iswith2025-06-15 13:00
找到了,使用vfp调用netV8,加载 C# Markdig
// 基本转换
string markdown = "# 标题\n\n**粗体** 和 _斜体_";
string html = Markdown.ToHtml(markdown);

Console.WriteLine(html);

浏览器配合webview2不过,webview2本来就可以解析,IE行不行就不知道了!也可能可以,html应该是通用的。
#5
cssnet2025-06-15 15:39
以下是引用iswith在2025-6-15 13:00:44的发言:
找到了,使用vfp调用netV8,加载 C# Markdig


话说,我提及的“Markdown控件”,特意标注了“可用/好用/易用”,意思就像是Richtextbox、Editbox或Textbox那样的所见即所得的文字控件——可以随随便便、简简单单编辑文字,可以随随便便、简简单单设置字体、字号(Richtextbox),而不必劳神伤肝去折腾关注文字以外的任何东西。

而Markdown的核心理念,也正是如此:

简单。大道至简。哪怕你完全不懂得Markdown的标记规则,也能够用记事本打开并无碍地阅读Markdown文字,只不过漂亮格式被随随便便、简简单单忽略掉了而已。


#6
iswith2025-06-15 15:45
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
完美,IE6.0上我试了,有点老火,最起码要懂它运作逻辑吧!才能大道至简,上来就大道至简。

[此贴子已经被作者于2025-6-15 15:47编辑过]

#7
sam_jiang2025-06-15 20:17
md文件其实是纯文本文件,用notepad,notepad++等文本编辑软件都可以打开。
#8
cssnet2025-06-15 21:49
以下是引用cssnet在2025-6-15 15:39:17的发言

“Markdown控件”,意思就像是Richtextbox、Editbox或Textbox那样的所见即所得的文字控件——可以随随便便、简简单单编辑文字,可以随随便便、简简单单设置字体、字号(Richtextbox),而不必劳神伤肝去折腾关注文字以外的任何东西。

哪怕你完全不懂得Markdown的标记规则,也能够用记事本打开并无碍地阅读Markdown文字,只不过漂亮格式被随随便便、简简单单忽略掉了而已。


事实上,用Richtextbox、Editbox或Textbox就能够装入Markdown文件,来进行“源代码级的编辑”。

这一点我们当然很清楚。

我的意思是,能否像用Richtextbox编辑RTF那样,所见即所得地现场编辑MD,一边改,一边即时看到效果(而不是像在记事本中打开一个RTF(若愿意,你确实可以用记事本打开RTF文件进行编辑的),进行“源代码级的编辑”RTF格式代码)。

就这么个意思。

我所说的“控件”、“大道至简”,指的是编辑——现场编辑啊,大哥。若将MD转成HTML,简单问题就给搞复杂了哈!问君能在IE、edge或chrome的浏览界面中,随意地编辑修改HTML吗?

#9
cssnet2025-06-15 22:03
或者,准确地下一个定义:

Markdown控件,一种可以实时渲染MD标记,并可任意编辑当中文字的(富)文本框控件;必要时,可一键切换至源码模式,以便修改MD标记,完成后,再一键切换回实时渲染模式,继续编辑文字。

其实,在线版的Markdown编辑器,大多正是如此这般的东东。只不过,许多编辑器是一左一右两个窗口,左边源码,右边预览而已。



#10
sam_jiang2025-06-15 23:12
回复 9楼 cssnet
自己写一个得了,很简单的。

如果你想知道markdown的语法,可以参考:https://www.
如果只是想查看markdown文档,可以下载markdownpad2

只有本站会员才能查看附件,请 登录


#11
cssnet2025-06-15 23:23
以下是引用sam_jiang在2025-6-15 23:12:33的发言:

自己写一个得了,很简单的。

如果你想知道markdown的语法,可以参考:https://www.
如果只是想查看markdown文档,可以下载markdownpad2


我想以markdown控件取代Richtextbox控件,以提供最轻量级的(富)文本编辑软件体验。
#12
xinjie2025-06-15 23:48
https://www.
#13
iswith2025-06-17 13:00
你就是我们"vfp村"最帅的"崽",标记语言,你想怎么直接预览,预览你怎么标识输写,要不你就是不懂这个,要么就是想站在桌子把桌子拿起来。

[此贴子已经被作者于2025-6-17 13:01编辑过]

#14
cssnet2025-06-17 14:30
以下是引用iswith在2025-6-17 13:00:50的发言:
你就是我们"vfp村"最帅的"崽",标记语言,你想怎么直接预览,预览你怎么标识输写,要不你就是不懂这个,要么就是想站在桌子把桌子拿起来。


切,没见过大蛇痾屎,后生崽。
markdown编辑器typora了解一下。
所见即所得,现场编辑标记语言,这在咸丰年代就有啦,有那么大惊小怪吗?
比方说,HTML是不是标记语言?
甭两头望,说你呢——回答“是”或“不是”。
Dreamweaver是不是“所见即所得”的HTML标记语言编辑器?
它怎么就“站在桌子把桌子拿起来”了?

没人搞MDTextbox fox ActiveX,绝不是搞不出来,纯粹是因为:VB6(或更小众的VFP)现在早已经不是什么新鲜萝卜皮的流行编程语言,搞出来之后没人买而已啦。
没人买,何来卖?
挑!
#15
iswith2025-06-17 15:04
按你思维那请你在同一个版面里又写表达预览看看
#16
cssnet2025-06-17 15:21
以下是引用iswith在2025-6-17 15:04:42的发言:

按你思维那请你在同一个版面里又写表达预览看看


markdown编辑器typora了解一下。
markdown编辑器typora了解一下。
markdown编辑器typora了解一下。

已说三遍。
话说,西山那块大青石上的大蛇,一泡屎和一泡尿都该已经彻底拉干净了。

不是,我说,Word、WPS、写字板这些,难道不都是“标记语言文字编辑器”吗?
所见即所得,隐去格式标记,光预览格式文本,最终用户编辑的,也是渲染好的格式文本——
难道你以为这些,跟我说的MDTextbox,有什么本质区别吗?
呵呵。
#17
cssnet2025-06-17 15:42
若能够有一个MDTextbox.ocx,好处绝对是大大的!

首先,它是纯TXT兼容,完全可以取代Editbox和Textbox;
其次,它自带常用文本格式,又几乎可以完全取代RichTextbox。
即,所有好处,该有的不该有的,MD基本上全都占尽啦!

唯一遗憾是,这世上,没有一家公司愿意做一个MDTextbox.ocx出来。
主要无利可图。
嘿嘿。
哥们,话说,当下,豉油、葱、姜俱已齐备,要做一盆子豉油鸡,咱就缺一只鸡哇!
#18
iswith2025-06-17 16:14
看似很简单的问题 其实很难,也不光是利益问题 !也是利益问题 ,总之一句话把ms核心 是怎样渲染到界面的,再把google核心是如何渲染 html拆分,你就成功了,因现在主流只是把html进渲染,md输出其实也是html渲染,但都是web的本质上跟winform还是有些区别,winform核心是wpf和gdi,你要搞两家公司哦。当然现在webview2崛起,可以在webview2上拆分渲染核心,再把渲染核心拆到wpf或uwpf实际ms也做了,而且全球性能最优,就是没有拆到winform,不过winform可以直接套wpf,你可以试试在wpf或upwf直接使用,有了为啥要做呢!有没有一种可能是你不知道 叱!

[此贴子已经被作者于2025-6-17 16:20编辑过]

#19
seasoners2025-06-18 10:44
xinjie 提示的 “https://www.” 这里面有个AceEditor非常不错,但资料不完整,东西是好东西,
xinjie大侠,有完整的吗?
#20
iswith2025-06-20 16:15
你是不是想这样?。。。。。。。。。。。。。。。。。。

[此贴子已经被作者于2025-6-20 16:35编辑过]

#21
cssnet2025-07-06 18:08
微软新版记事本全面支持Markdown格式:
https://blogs.

微软在 5 月 30 日宣布推出新版记事本应用(版本 11.2504.50.0),新增轻量级格式功能。最初该功能仅面向 Canary 和 Dev 渠道用户开放测试。

近日有用户发现,Windows 11 的记事本现已全面支持 Markdown 格式,且系统运行表现稳定,未出现性能下降问题。非 Windows Insider 计划的用户也可以通过微软商店更新获得此功能,并在首次启动时看到相关提示窗口。

可,我的 Windows 记事本 已自动升级至版本 11.2504.62.0,却找不到支持 Markdown 格式的功能,怎么破?

#22
iswith2025-07-06 19:59
你盗版的系统
还这个重要更新
Snipping Tool (version 11.2505.21.0)
GIF export
In this update, we are adding GIF export for screen recordings – designed to boost your productivity and turn quick captures into shareable moments.

To get started, open Snipping Tool’s screen recorder via Win + Shift + R or launch the app and toggle to screen recording mode. Record a screen recording video. Once the recording preview opens in the Snipping Tool app, click on the “Export GIF” button in the top toolbar.

[此贴子已经被作者于2025-7-6 20:09编辑过]

#23
cssnet2025-07-06 23:02
以下是引用iswith在2025-7-6 19:59:01的发言:

你盗版的系统
还这个重要更新


现在我们这些老家伙,谁还有精力去电脑城组装台式机啊?无非就去华硕门店,买一部笔记本电脑,再外接自家的27寸显示器,当作台式机来用。
话说,这年头,谁还犯得着去用盗版windows 11啊?
#24
cssnet2025-07-07 10:36
为什么我如此关注Markdown 格式?事关,我觉得,Markdown 简直就是改变未来文本处理的最重要的发明之一,其重要性,就跟UTF-8差不多了!

#25
iswith2025-07-07 10:43
对于VFP来说意义不大,无法调用的东西都没有啥意义!它再强VFP用不了!有啥意义。
#26
cssnet2025-07-07 12:32
只有本站会员才能查看附件,请 登录

希望能找找新版记事本的DLL,若能找到调用方法就好啦!
#27
sam_jiang2025-07-07 16:07
回复 26楼 cssnet
我用notepad++,支持markdown
#28
cssnet2025-07-07 16:18
以下是引用sam_jiang在2025-7-7 16:07:28的发言:
我用notepad++,支持markdown


讨论的不是谁支持,谁不支持的问题,而是,如上边的英雄所言:有没办法调用markdown?在VFP中?

观察了一下新版的 Windows 记事本,发现它调用的可能是Windows.UI.Xaml.dll,这很可能意味着 新版记事本(Notepad)使用了现代 Windows UI(WinUI/XAML)框架,而 Markdown 支持可能正是通过 XAML 控件实现的(例如 RichEditBox 或 WebView2 渲染)。

好吧,现在正式呼唤熟悉这一块的英雄们:

长江长江,我是黄河!听到请回答!


#29
cssnet2025-07-07 17:41
再仔细察看了一下,在新版 Windows 记事本 中,显示格式文本的类名,是RichEditD2DPT,这意味着它使用了基于 Direct2D 的现代化 RichEdit 控件,而非传统 Win32 的 RichEdit20W。这为 Markdown 支持提供了底层技术基础。现在问题又变成:

试问,哪路英雄能够在VFP中实例化RichEditD2DPT控件,并无碍地调用?
#30
cssnet2025-07-07 18:05
DeepSeek骗我用类似这样的代码,测试记事本的Markdown渲染,可惜事情可能没那么简单,光插入了纯文本,没有格式渲染:

* test_Notepad_MD.prg
DECLARE Long SendMessage IN WIN32API AS SendMessageI Long nHandle, Long nMessage, Long nParameter, Long nParameter
DECLARE Long SendMessage IN WIN32API AS SendMessageS Long nHandle, Long nMessage, Long nParameter, string @
*填充参数,测试记事本的MarkDown渲染
hWndRichEdit = 0x000A0DF0   &&侦测到的记事本实例句柄
WM_SETTEXT = 0x000C
EM_SETEDITSTYLE = 0x14CD
SES_MARKDOWN = 0x10000000
LPARAM = "** Hello ** _World_"
SendMessageI(hWndRichEdit, EM_SETEDITSTYLE, SES_MARKDOWN, SES_MARKDOWN)
SendMessageS(hWndRichEdit, WM_SETTEXT, 0, @LPARAM)
return

#31
iswith2025-07-07 18:58
Windows.UI.Xaml.dll 意味着他使用的wpf,在我最新构建的netvfp架框上,net全部所有生态都可以在VFP调用!就问你惊不惊喜,意不意外!现在ms把net当亲儿子养,啥好东西都在这个平台下实现!VFP可以无缝接入!也算是给VFP续命了。其实你的目标很明确想在这个md下实现新的VFPIDE,可惜它不是gdi的,桌面现在只有两种老的gdi/wpf。wpf对于老的gdi下的程序员设计思维逻辑是不适性的!他是Ui与代码分离的。在net平台下优秀的百万级行gdi渲染控件比较多,你只是不了解而以。

[此贴子已经被作者于2025-7-7 19:03编辑过]

#32
cssnet2025-07-07 22:04
之所以关注Markdown,只有一个原因:

简单!

Markdown 是轻量级(甚至可称之为“微量级”)的标记语言。比如说,26#的渲染效果,源代码如下:

==============
## 哇靠!Windows 记事本真的支持Markdown啦!

* 真好玩儿!
* 好玩+1
* 切!没意思!
* 无聊!

*我觉得这是一个了不起的改进!*

**特别有趣!**
==============

这基本上是傻瓜都能看懂的标记。这比HTML简单得多!至于复杂的标记,如RTF,那源码是十个非傻瓜也绝不可能看懂的源码。

只为简单故,方欲搞MD。可若是因此而将问题搞得异常复杂,那可就没必要啦。
#33
iswith2025-07-08 11:42
我让你看一下最新的,这个不是webview2,是GDI的
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2025-7-8 11:47编辑过]

#34
iswith2025-07-08 11:51
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
#35
iswith2025-07-08 12:11
webview2的,各有千秋
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#36
cssnet2025-07-08 12:21
大哥!楼上的大哥!【简单】——我要的不多,无非是【简单】二字而已。你搞那么鬼复杂的东东,谁要?
#37
cssnet2025-07-08 16:24
就好比说,
傻瓜都知道,你的数学不是体育老师教的;
可你现在却非要让你的体育老师(VFP)去演算高等数学题(实现异常复杂的UI界面)。
这就有些……


#38
cssnet2025-07-09 22:59
闲来无事,有一搭没一搭地跟DeepSeek聊了聊“MD for VFP9”实现方案。

DeepSeek思维敏捷,反应迅速,且知识库异常渊博,虽然这话题有些无厘头,不过与DeepSeek的交流,带给我不少启发。

虽然吧,最终结果聊了等于没聊,但过程本身确实学到不少东西。
#39
iswith2025-07-10 12:54
你自己把问题复杂化!购买一个WEbview2 组件,然后调ACE,除了VFP语法,什么语法没有!都有!我也正打算升级企业的VIP的ACE的VFP语法。。。你自己把问题和复杂化了。
#40
iswith2025-07-11 00:32
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


#41
cssnet2025-07-11 07:05
唉,实在搞不懂这位英雄究竟想推销些什么。

傻瓜才会想要让VFP去实现Notepad++。

就好比,裁缝生产的齿轮,有人想要吗?

唉,不好好地抄你的剪刀卷尺,搞什么搞?
#42
iswith2025-07-11 10:19
只有本站会员才能查看附件,请 登录
#43
iswith2025-07-11 10:22
只有本站会员才能查看附件,请 登录
#44
cssnet2025-07-11 10:36
虽说我老人家涵养好,可卖广告卖到跟巷口老中医贴狗皮膏药一样,那就得赠你一句:

客官自重,面斥不雅。

#45
cssnet2025-07-12 15:48
DeepSeek很有意思!我老人家虽编程水平很烂,但胜在脑子活泛,灵光一闪,竟然想出一个歪点子来。

跟DeepSeek再一讨论,她给出了一些很邪门的代码。一句也看不懂!

可惜啊我自上世纪一路走来,只略懂Delphi和C语言,连C++也没正儿八经写过代码;汇编倒是小时候玩破解,用Debug写过代码,嘿嘿。完全不懂新出的那些稀奇古怪的编程语言。

没关系,有DeepSeek在,下回下载来装一个,试试编译一下,看能否通过。
#46
cssnet2025-07-13 18:05
苦苦尝试了整整一天一夜,一片痴心终究还是错付了。

想不到在国内连 github 这般困难!鬼佬的开源代码,用到一大堆的依赖包,现在流行全放到 github 服务器上。随便一个几十MB的依赖包,下载堵塞,就导致编译出错退出!开源也等于白搭,稍大一点的项目,哪怕才100 MB不到,源代码全下载到本地,也根本没办法完成编译。

话说,免费的科学上网工具,悄悄地,谁透露一下下?

#47
wcx_cc2025-07-13 23:48
没看懂各位高手们正在讨论什么。如果想要在VFP的表单内,不使用 EDIT控件,用 word 做控件放入表单内,替换 EDIT控件的位置,手工调整WORD 窗口的大小,这样,word 窗口在表单内,可以执行 word 的通用编辑和操作功能,只不过自带的工具栏表面上稍少了一点,但是,对于任意编辑其中的字体,颜色,放进图像等,一直到最后的打印,存盘进入数据库,还是满够用的。在表单内显示的这个word 窗口,非常稳定,与edit 没什么两样,打开表单即可显示。
#48
cssnet2025-07-14 16:40
以下是引用wcx_cc在2025-7-13 23:48:42的发言:

用 word 做控件放入表单内,替换 EDIT控件的位置


这确实是个非常棒的建议!不知嵌入的word,操作反应会不会略有延迟、卡顿?——请展开谈谈。

#49
cssnet2025-07-15 08:11
VFP9 有个大问题——天大的问题!

它是32位的。

以前下载的许多开源代码,要在类Linux平台语言下编译出命令行工具或DLL,而Linux官方早已移除了32位支持,编程语言自然也相应移除了32位预编译包。我苦苦折腾了几天几夜,发觉时至今日,已根本无法成功编译那些32位代码了!动辄发生依赖包不兼容32位的错误,“若要成功,必先自宫”——时光必须要倒流到2020年左右,方有可能!

咱就期待,千万不要哪天Windows也移除32位支持吧……

#50
wcx_cc2025-07-18 13:43
word 嵌入表单内,速度不如edit 快,他也有弊端,就是需要整篇存盘,占磁盘空间比较大,所以适合电脑内存,和服务器硬盘都比较大的情况,使用者感觉不到有延迟,卡顿现象。
在自己做的软件中,重要的篇幅大的文述部分都是word的,篇幅小的任然保留了edit,使用多年,这一方面用户无不良反馈。
#51
cssnet2025-07-18 21:59
以下是引用wcx_cc在2025-7-18 13:43:47的发言:

word 嵌入表单内,速度不如edit 快,他也有弊端,就是需要整篇存盘,占磁盘空间比较大,所以适合电脑内存,和服务器硬盘都比较大的情况,使用者感觉不到有延迟,卡顿现象。
在自己做的软件中,重要的篇幅大的文述部分都是word的,篇幅小的任然保留了edit,使用多年,这一方面用户无不良反馈。


初步测试嵌入 word 的表单,发现似乎 word 很不稳定。我系统安装的是Office 2016,已一路自动升级到了Office 2021。一旦嵌入的 word 失去焦点(比如,点击表单以外的区域,甚至是点击 word 以外的表单内的其他控件或空白区域),word 文字工作区就会一片灰白;原来输入到 word 的文字,都变得不再可见;点击VFP之外区域,整个表单干脆全消失不见,虽然仍停留后台未被销毁(退出VFP时,这表单会一闪而过,意味着它仍像僵尸一样残存于系统内存),但已不可见,不可选中了。如何解决?这问题我也问了 DeepSeek ,它倒是给出了一堆方案,就是感觉比较繁琐,还没来得及试。

只是想啊:

倘若 word 嵌入表单,就是这种衰样表现的话,恐怕此种方式,无多少实用价值!太脆弱,也太易出错啦!
12