Skip to content

Releases: twgh/xcgui

v1.3.398

12 Oct 12:54

Choose a tag to compare

  1. WebView 增加销毁事件
  2. 优化窗口销毁时释放 WebView2 资源的逻辑
  3. 优化 menu 对象添加事件的代码
  4. 修复 AddEvent_NCDestroy 和 AddEvent_Destroy_End 无效的问题

v1.3.397

08 Oct 07:34

Choose a tag to compare

一、新增函数

// edge
CreateEnvironmentOptions
CreateCustomSchemeRegistration

二、其他

  1. 修复 XTemp_LoadEx 系列函数
  2. WebView2 运行时更新支持到 141.0.3537.50 版本
  3. 定义了 WebView2 所有接口的 IID 常量
  4. 实现了 ICoreWebView2CompositionController2 - 4

v1.3.396

21 Sep 08:27

Choose a tag to compare

一、新增函数

// common
IntToBool
AtoUint32
Uint32ToA
SliceIndexOf
Choose
ChooseValue

// xc
OffsetRect
Anima_MoveExT
Anima_RotateExT
Anima_AlphaExT
Anima_ColorExT

// wapi
SHCreateStreamOnFileEx

二、其他

  1. 颜色值改为 uint32 类型
  2. 适配了 386 架构
  3. 修复了一些 WebView 的问题
  4. 修正三个月历常量值: MonthCal_State_Flag_Item_Last_Month, MonthCal_State_Flag_Item_Cur_Month, MonthCal_State_Flag_Item_Next_Month

v1.3.395

12 Sep 14:20

Choose a tag to compare

一、新增函数

// app
Init // 写出 xcgui.dll 到 windows 临时目录中 'xcgui+版本号+_编译时的目标架构+_CRC32' 文件夹里
InitOrExit // 写出 dll 出错会弹窗提示错误原因并退出程序

// widget
NewGifPlayer

// common
ExtractGifFrames
GetProcessName
GetProcessNameWithoutExt
BoolToString
StringToBool
BoolToInt

// xc
IsUiThread
CallUTAny // 调用界面线程, 可传任意类型参数
Auto // 自动判断是否在UI线程以决定是否调用界面线程来执行回调函数
AutoInt
AutoAny
DpiConvRound // 将 int32 类型的整数根据窗口 dpi 进行换算, 计算结果会四舍五入
XShapeGroupBox_GetText
XFrameWnd_GetDock
XPane_GetTabBar
XPane_GetSplitBar
XPane_GetButton
XPane_ShowButton
XTemp_Get
XBtn_ClearAnimation
XDraw_GetD2dBitmap

// wapi
CoInitializeEx
CoCreateInstance
AdjustWindowRect
SetWindowText
GetClientRect
SHCreateMemStream
GetAsyncKeyState
GetCurrentThreadId
SetCursor
GetWindowRect
CoTaskMemFree
GetModuleFileName
CreateRoundRectRgn
SetWindowRgn
IsOK // 检查 error 是否为 S_OK
IsOkOrPanic

// wnd
SetWindowRound

// wutil
IsKeyPressed // 判断按键是否按下
IsComboKey // 判断组合键是否按下

二、新增 WebView 组件, 可创建到炫彩窗口或元素

当前库中使用的 Webview2 运行时版本号是 140.0.3485.44.

高版本运行时是兼容低版本的,低版本运行时不用高版本的方法也没有问题。

下载或更新运行时,安装时要使用管理员权限运行。

		// 创建 webview 环境
        edg, err := edge.New(edge.Option{
                UserDataFolder: os.TempDir(),// 自己的软件应该在固定位置创建一个自己的目录, 而不是用临时目录
        })
        if err != nil {
                wapi.MessageBoxW(0, "创建 webview 环境失败: "+err.Error(), "错误", wapi.MB_OK|wapi.MB_IconError)
                os.Exit(1)
        }
        // 创建 webview 到窗口
        wv, err := edg.NewWebView(w.Handle, edge.WebViewOption{
			edge.WithFillParent(true),
        })
		// 导航到指定网页
		wv.Navigate("https://www.baidu.com")

更多例子可查看 xcgui-example 仓库。

WebView 问题合集

三、新增 AddEvent 的方式添加事件

此类方法事件回调函数可随意使用匿名函数, 且不用担心 Go 2000 个回调函数上限的限制

四、其他

  1. 内置了 dll, 只需在 app.New 前使用 app.Initapp.InitOrExit 就无需再考虑 dll 如何携带了
  2. 支持的最低 go 版本升级为 1.18
  3. 界面库初始化时内部直接调用了 runtime.LockOSThread(), 无需手动调用了
  4. 增加元素系统按键按下/弹起事件 Event_SYSKEYDOWN
  5. 公开 wapi 包的 dll 模块, 方便自行调用未封装的 windows api
  6. Event_MENU_SELECT1 的参数 nID 改为 int32 类型
  7. 修改 XMsg_CreateEx 的前两个参数类型

v1.3.394

05 Feb 13:01

Choose a tag to compare

一、新增函数

// wapi
MoveWindow
SetParent
ShowWindow
UpdateWindow
SetFocus
GetClassName
EnumWindows
IsWindowVisible
GetParent
PeekMessage
GetSystemMetrics
GetWindowThreadProcessId
RegisterClassEx
DefWindowProc
CreateWindowEx
GetModuleHandleEx
PostThreadMessage
IsDialogMessage
GetAncestor
DestroyWindow

// wutil
GetWindows
GetScreenWidth
GetScreenHeight

二、新项目 XWebView 已发布

为 xcgui 项目定制的 webciew2 组件: https://github.com/twgh/xwebview

v1.3.393

24 Jan 11:13

Choose a tag to compare

一、新增函数

XWnd_DestroyWindow
XC_SetD2dTextAntialiasMode
XC_IsInit
XTable_SetItemTextEx
XTable_GetRowCount
XTable_GetColCount
DpiConv
Ftoa
Atof
wapi.SetWindowLongPtrW
wapi.GetWindowLongPtrW
wutil.OpenFileEx
wutil.SaveFileEx

二、其他

  1. 增加窗口样式相关常量: xcc.WS_
  2. 增加窗口扩展样式相关常量: xcc.WS_EX_
  3. 窗口基类增加 GetRectDPI 方法
  4. 优化 wutil.SaveFile/OpenFile 相关代码
  5. 修复一些UI元素DPI支持不完善的问题
  6. 修复显示器分辨率低, 弹出菜单超出屏幕顶部问题
  7. xcgui.dll 更新了, 需要下载新的

三、xcgui.dll-3.3.9.1

x64
文件大小: 3.10 MB (3,255,808 字节)
MD5: 608D2EBCA30ED18429E7A49C55F88F75

x86
文件大小: 2.43 MB (2,548,736 字节)
MD5: 4334EF1C346044D00B5AC3B890E43400

v1.3.392

29 Jul 17:17

Choose a tag to compare

一、新增函数

window.NewTrayIcon      //创建托盘图标操作对象
wutil.HIcon             //加载图片得到HICON类型的句柄

二、其他

  1. 优化了一些代码
  2. 修改了一些注释

v1.3.391

07 Jul 07:37

Choose a tag to compare

一、新增函数

xc.Itoa                 //将int32转换到string
xc.Atoi                 //将string转换到int32
wutil.NewHookKeyboard   //创建全局键盘钩子
wutil.NewHookMouse      //创建全局鼠标钩子

二、其他

  1. 应该用int32类型的参数已经全部更改完毕, 以前用int是历史遗留问题。
  2. 第一个影响是原来用strconv包来转换int的现在可能要用xc包的来转换了。
  3. 第二个影响是原本for i := 0, 可能要改用for i := int32(0), 因为循环内的函数现在可能要用int32的索引。
  4. wParam和lParam改为uintptr类型,影响了几个事件回调函数定义。
  5. 其实我自己的项目包括例子仓库看了下也没改几个地方,影响应该不大。

v1.3.390

03 May 13:10

Choose a tag to compare

一、新增函数

XC_EnableAutoRedrawUI             //炫彩_启用自动重绘UI
XC_GetHandleCount                 //炫彩_取句柄总数
XEdit_ClipboardCopyAll            //编辑框_剪贴板复制
XFrameWnd_SetLayoutMargin         //框架窗口_置布局外间距
XList_AddColumnText2              //列表_添加列文本2
XList_AddColumnImage2             //列表_添加列图片2
XList_CreateAdapters              //列表_创建数据适配器2
XPGrid_EnableExpandCurGroupOnly

二、其他

  1. 开放虚表功能。
  2. 布局固定坐标支持负数。
  3. 加载布局文件, 首次自动处理按钮绑定的元素显示隐藏。
  4. 按钮绑定元素, 新增支持[名称], 以前只支持ID。
  5. 部分函数名中的项改为行(item->row), 旧版函数还保留。
  6. 类中没有返回值的方法返回对象自身, 以便链式调用。

三、xcgui.dll-3.3.9.0

x64
文件大小: 2.80 MB (2,941,952 字节)
MD5: FB8CCDCEE2F09BB1B1597CAFB12EE99C

x86
文件大小: 2.31 MB (2,426,368 字节)
MD5: 740C477DF7725896E509F75DA974FF3B

v1.3.382

02 Jan 16:51

Choose a tag to compare

  • 修复一处会导致崩溃的问题
  • 修复wapi.IMAGE_ICONwapi.IMAGE_CURSOR错误的值
  • 增加wapi.DestroyIcon