Github地址

介绍

  • 本库封装自炫彩界面库,功能丰富(1000多个API接口),简单易用,轻量级,高度DIY自定义,支持一键换肤。
  • 炫彩界面库是由C/C++语言开发:软件运行效率高,不需要第三方库的支持,不依赖MFC,ATL,WINDOWS标准控件等。
  • DirectUI设计思想:在窗口内没有子窗口,界面元素都是逻辑上的区域(无HWND句柄,安全,灵活),所有UI元素都是自主开发(不受系统限制),更加灵活的实现各种程序界面,满足不同用户的需求。
  • 拥有免费的UI设计器:快速开发工具,所见即所得,高度自定义系统(DIY),让UI开发变的更加简单。
  • 支持Direct2D,硬件加速,能更大程度的发挥硬件特性,创建高性能,高质量的2D图形。
  • 有完善的中文官方文档:中文官方文档

获取

go get github.com/twgh/xcgui

可视化UI设计器

使用UI设计器可以快速设计界面,节省大量代码。
uidesigner
设计器使用例子,只有这么多代码:

package main

import (
	_ "embed"
	"github.com/twgh/xcgui/app"
	"github.com/twgh/xcgui/window"
	"github.com/twgh/xcgui/xcc"
)

//go:embed res/qqmusic.zip
var qqmusic []byte

func main() {
	a := app.New(true)
	// 从内存zip中加载资源文件
	a.LoadResourceZipMem(qqmusic, "resource.res", "")
	// 从内存zip中加载布局文件, 创建窗口对象
	w := window.NewByLayoutZipMem(qqmusic, "main.xml", "", 0, 0)
	// 调整布局
	w.AdjustLayout()
	// 显示窗口
	w.ShowWindow(xcc.SW_SHOW)
	a.Run()
	a.Exit()
}

动态链接库下载

网盘下载地址
百度网盘
蓝奏云
XCGUI.dll

在开发时最好是放到C:\Windows\System32目录,这样就不需要频繁把dll放到不同程序的运行目录了。

简单窗口(纯代码)

SimpleWindow

package main

import (
	"github.com/twgh/xcgui/app"
	"github.com/twgh/xcgui/window"
	"github.com/twgh/xcgui/xcc"
)

func main() {
	// 1.初始化UI库
	a := app.New(true)
	// 2.创建窗口
	w := window.New(0, 0, 430, 300, "", 0, xcc.Window_Style_Simple|xcc.Window_Style_Btn_Close)
	// 设置窗口边框大小
	w.SetBorderSize(0, 30, 0, 0)
	// 设置窗口透明类型
	w.SetTransparentType(xcc.Window_Transparent_Shadow)
	// 设置窗口阴影
	w.SetShadowInfo(8, 254, 10, false, 0)
	// 3.显示窗口
	w.ShowWindow(xcc.SW_SHOW)
	// 4.运行程序
	a.Run()
	// 5.释放UI库
	a.Exit()
}

常量

xcc.Window_Transparent_Shadow
Window_Transparent_

命令介绍

xc包里包含xcgui.dll里所有的API,有一千多个函数,可以直接使用,封装好的类都在其他包里。

在某些情况下,把xc包里的原生函数与封装好的类混合起来使用会更加方便。

炫彩所有的结构体也都在xc包里。

事件

炫彩的全部事件都已经定义好了,都是以Event开头的, 以1结尾的事件是会传进去元素的句柄。

*pbHandled=true

封装进度

这些类都是基于xc包里的一千多个函数封装的。

中文名称包名类名是否封装完毕文档
程序(炫彩全局API)appApp
窗口windowWindow
框架窗口windowFrameWindow
模态窗口windowModalWindow
形状对象widgetShape
圆形形状对象widgetShapeEllipse
形状对象GIFwidgetShapeGif
组框形状对象widgetShapeGroupBox
直线形状对象widgetShapeLine
形状对象图片widgetShapePicture
矩形形状对象widgetShapeRect
形状对象文本widgetShapeText
表格widgetTable
按钮widgetButton
下拉组合框widgetComboBox
编辑框(常规, 富文本, 聊天气泡)widgetEdit
代码编辑框widgetEditor
基础元素widgetElement
列表widgetList
列表框widgetListBox
弹出菜单widgetMenu
进度条widgetProgressBar
静态文本连接按钮widgetTextLink
布局元素widgetLayoutEle
布局框架widgetLayoutFrame
列表视图widgetListView
菜单条widgetMenuBar
Pane元素widgetPane
滚动条widgetScrollBar
滚动视图widgetScrollView
滑动条元素widgetSliderBar
标签栏元素widgetTabBar
工具条widgetToolBar
列表树元素widgetTree
日期时间widgetDateTime
月历卡片widgetMonthCal
数据适配器-列表视元素adapterAdapterListView
数据适配器-单列Map-列表头(listHeader)adapterAdapterMap
数据适配器-XList-XListBoxadapterAdapterTable
数据适配器-树元素adapterAdapterTree
背景管理器bkmanagerBkManager
背景对象bkobjBkObj
字体fontFont
图片操作imagexImage
SVG矢量图形svgSvg
列表项模板tmplListItemTemplate
节点tmplNode
图形绘制drawxDraw
动画序列aniAnima
动画组aniAnimaGroup
动画项aniAnimaItem
动画旋转项aniAnimaRotate
动画缩放项aniAnimaScale
含有XCGUI所有API和结构体xc
XCGUI常量xcc
缓动ease
资源操作res
Windows系统apiwapi持续更新
调用wapi封装了对窗口的操作wnd持续更新