在现代IDE和语法高亮编辑器的时代,一个名为Retropad的项目选择了相反的方向:完全用纯C语言重写一个Windows记事本。这个项目由“Windows任务管理器之父”Dave W. Plummer创造,目标非常明确——在不使用任何现代框架的情况下,完整复现经典Windows记事本的每一个功能。该软件体积仅为2749字节,约合2.7KB,运行高效且资源占用极低。

Retropad的技术实现严格遵循了Charles Petzold在《Programming Windows》中开创的Win32 API编程范式。项目完全采用纯C编写,不依赖任何外部库,只使用Windows原生API。这种做法在今天看起来近乎复古,但恰恰是这种约束让它成为学习Win32编程的绝佳教材。
在功能上,Retropad几乎做到了对经典记事本的像素级复刻:完整的菜单系统和快捷键绑定(Ctrl+N/O/S打开新建保存、Ctrl+F搜索、Ctrl+H替换、Ctrl+G跳转、F5时间戳),自动隐藏的状态栏,查找替换对话框,字体选择器,拖拽文件打开,以及BOM感知的文件I/O——系统会自动检测UTF-8和UTF-16编码,保存时默认使用UTF-8 BOM格式。唯一被刻意省略的功能是打印支持,项目作者认为在现代浏览器和PDF阅读器普及的背景下,打印功能已经不再是编辑器的基础需求。

从构建系统看,Retropad同时支持Visual Studio 2022(MSVC+nmake)和MinGW-w64(gcc+make)两套工具链。项目结构简洁:retropad.c处理主窗口和UI逻辑,file_io.c/.h处理编码相关的文件操作,retropad.rc定义菜单、快捷键、对话框和图标资源。这种模块化设计让代码结构清晰易懂。
Retropad的意义不在于替代Windows自带的记事本——微软早已在其基础上增加了现代化的标签页和Copilot辅助功能。这个项目的价值在于它提供了一种可能性:在AI代码生成工具盛行的今天,人类仍然可以完整理解一个编辑器从窗口创建、菜单系统、文件I/O到Unicode处理的全部细节。每一行代码都是可读的,每一个系统调用都是可追溯的。这种透明性正是现代框架所缺乏的。
对于想学习Windows桌面开发的程序员来说,Retropad提供了一个极好的起点。它不需要配置复杂的现代开发环境,不需要理解异步编程或虚拟DOM,只需要一个文本编辑器、一份Windows SDK文档,和Charles Petzold的那本书。
参考来源: https://github.com/PlummersSoftwareLLC/retropad