StellarX 星垣 · C++ GUI Framework

StellarX 星垣:从 C++ 走进原生 GUI

面向 Windows 平台的轻量级 C++ 原生 GUI 框架, 为教学、课程设计、小型桌面工具和 GUI 原理学习而生。

StellarX星垣GUI 不追求替代大型工业框架,而是帮助刚从控制台走向图形界面的 C++ 学习者, 用更低的成本写出可运行、可交互、能读懂源码的桌面程序。

Windows Native C++17 EasyX + Win32 MIT License
StellarX / KEY5 Demo
StellarX KEY5 布局与托管重绘预览
v4.0.0 核心稳定性与安全控件树更新
Open Source 教学友好 · 源码可读
教学入门 从控制台到 GUI 的过渡
轻量原生 基于 EasyX + Win32
源码可读 理解事件、布局与重绘
安全管理 稳定句柄与延迟结构变更

For Learning & Building

给不同阶段的 C++ 学习者一条更短的 GUI 路径

StellarX 的价值不在于堆叠功能,而在于把窗口、控件、事件、布局和重绘 组织成新手能理解、能实践的工程结构。
For Students

从控制台程序走向图形界面

不必一开始就面对复杂框架和庞大配置,可以先用直观的控件对象完成课程设计、 小工具和可视化界面。

For Teachers

更适合讲清 GUI 基础概念

用窗口、按钮、标签、容器、表格和对话框等传统桌面概念, 帮助学生建立从事件到绘制的完整认知。

For Developers

从源码理解框架如何工作

StellarX 不是黑盒,你可以继续向下阅读控件树、消息分发、布局解算、 脏区重绘和托管绘制链路。

Showcase

从综合测试界面到小型工具示例

展示 StellarX 在控件组合、布局、表格、对话框与托管重绘场景下的实际表现。
32 位寄存器查看工具
Tool

32 位寄存器查看工具

标签、按钮、输入输出框、容器组合与小型工具界面组织。

桌面登录界面
Login UI

登录界面

背景图、文本标签、输入框与按钮组合出的基础桌面应用界面。

Table 表格控件
Table

Table 表格控件

展示结构化数据,支持表头、分页、边框、字体和背景等基础样式配置。

Dialog 与 MessageBox 示例
Dialog

Dialog / MessageBox

模态对话框、非模态对话框、消息框工厂和遮挡场景下的重绘处理。

Quick Start

五分钟跑起第一个窗口

安装 Visual Studio 与 EasyX 后,可以直接链接 Release 静态库, 也可以按照公开头、实现文件和私有头的目录结构集成源码。
01 安装 Visual Studio 与 EasyX
02 选择静态库或源码集成
03 创建 Window 并运行事件循环
main.cpp
#include "StellarX.h"

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    Window mainWindow(
        800, 600, 0,
        RGB(255, 255, 255),
        "我的星垣应用");

    auto button =
        std::make_unique<Button>(
            30, 30, 160, 42,
            "Click Me");

    button->setOnClickListener(
        [&mainWindow]()
        {
            StellarX::MessageBox::showModal(
                mainWindow,
                "按钮被点击",
                "提示",
                StellarX::MessageBoxType::OK);
        });

    mainWindow.addControl(
        std::move(button));

    mainWindow.draw();
    return mainWindow.runEventLoop();
}

Current Version

v4.0.0:核心稳定性与安全控件树更新

v4.0.0 引入稳定的 ControlHandle 和延迟结构变更事务, 解决回调期间增删控件可能造成的对象、迭代器与遍历状态失效问题, 同时收口文本所有权、页签 API、事件循环和托管重绘链路。
升级提醒: v4.0.0 包含破坏性 API 调整。升级前请阅读 CHANGELOG 和“从 v3.1.0 升级”说明。 焦点系统、键盘事件系统和 Tooltip 智能选位仍属于后续规划。
Ownership

稳定句柄与安全所有权

Window 与 Canvas 使用 ControlHandle 管理控件身份, 不再向外暴露可变的 unique_ptr 容器。

Mutation

延迟结构变更事务

事件、绘制、tick 和按钮回调中的新增、删除与清空请求, 会在最外层事务结束后的安全点统一提交。

Stability

事件、重绘与文本修复

修复 Table 分页覆盖、几何残影、Dialog 清理、Tooltip、 MBCS 文本和日志配置切换等问题。

Use Cases

更适合这些场景

C++ 课程设计

给控制台项目加一个可视化界面,让学生更快做出完整作品, 而不是卡在复杂框架配置上。

社团教学与入门项目

用相对简单的 API 讲清楚窗口、控件、事件、容器、布局和重绘等 GUI 基础概念。

个人小工具

适合制作寄存器查看器、数据表格、简单管理系统、比赛可视化和实验辅助工具。

Roadmap

StellarX Pro 规划

基础版继续保持开源和稳定维护。后续会探索面向中小型桌面应用的 StellarX Pro, 包括新的渲染后端、更完善的布局系统、主题系统和更接近日常项目的开发体验。
01

基础版稳定

继续收口现有控件、布局、重绘、文档和示例,降低新手使用成本。

02

渲染后端抽象

为未来从 EasyX + Win32 迁移到更现代的渲染方案打基础。

03

Pro 版本探索

面向中小型桌面应用,尝试更强的控件体系、主题能力和工程化体验。

About

关于 StellarX 星垣

StellarX 起初来自教学、社团和小工具开发中的真实需求。 它不是为了追逐复杂概念而诞生,而是希望给刚学 C++、想做 GUI、 想理解桌面程序的人,提供一条更低门槛、更可阅读、更容易实践的路。 如果这个项目能让一个学生第一次做出自己的图形界面, 让一个老师更容易讲清楚 GUI, 让一个开发者从源码里看懂事件与重绘的流动, 那它就已经有意义。