forked from go/golangs_learn
VIVIMAN
2 years ago
12 changed files with 254 additions and 0 deletions
@ -0,0 +1,20 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xcc" |
||||
|
) |
||||
|
|
||||
|
func main() { |
||||
|
// 炫彩_初始化, 参数填true是启用D2D硬件加速, 效果更好. 但xp系统不支持d2d, 这时候你就得填false来关闭d2d了
|
||||
|
a := app.New(true) |
||||
|
// 创建普通窗口, 宽300, 高200, 标题是"xcgui window", xcc.Window_Style_Default是使用默认窗口风格
|
||||
|
w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default) |
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
// 运行消息循环, 程序会被阻塞在这里不退出, 当炫彩窗口数量为0时退出
|
||||
|
a.Run() |
||||
|
// 退出界面库释放资源
|
||||
|
a.Exit() |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
_ "embed" |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xcc" |
||||
|
"os" |
||||
|
) |
||||
|
|
||||
|
//go:embed XCGUI.dll
|
||||
|
var dll []byte |
||||
|
|
||||
|
func main() { |
||||
|
_ = os.WriteFile("xcgui.dll", dll, 0666) |
||||
|
// 炫彩_初始化, 参数填true是启用D2D硬件加速, 效果更好. 但xp系统不支持d2d, 这时候你就得填false来关闭d2d了
|
||||
|
a := app.New(true) |
||||
|
// 创建普通窗口, 宽300, 高200, 标题是"xcgui window", xcc.Window_Style_Default是使用默认窗口风格
|
||||
|
w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default) |
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
// 运行消息循环, 程序会被阻塞在这里不退出, 当炫彩窗口数量为0时退出
|
||||
|
a.Run() |
||||
|
// 退出界面库释放资源
|
||||
|
a.Exit() |
||||
|
} |
@ -0,0 +1,30 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xcc" |
||||
|
) |
||||
|
|
||||
|
func main() { |
||||
|
// 炫彩_初始化, 参数填true是启用D2D硬件加速, 效果更好. 但xp系统不支持d2d, 这时候你就得填false来关闭d2d了
|
||||
|
a := app.New(true) |
||||
|
// 创建普通窗口, 宽430, 高300, 标题是"xcgui", xcc.Window_Style_Default是使用默认窗口风格, xcc.Window_Style_Drag_Window是允许拖动窗口
|
||||
|
w := window.New(0, 0, 430, 300, "xcgui", 0, xcc.Window_Style_Default|xcc.Window_Style_Drag_Window) |
||||
|
|
||||
|
// 设置窗口边框大小:标题栏高度34
|
||||
|
w.SetBorderSize(0, 34, 0, 0) |
||||
|
// 设置窗口透明类型:阴影窗口, 带透明通道, 边框阴影, 窗口透明或半透明
|
||||
|
w.SetTransparentType(xcc.Window_Transparent_Shadow) |
||||
|
// 设置窗口透明度:255就是不透明
|
||||
|
w.SetTransparentAlpha(255) |
||||
|
// 设置窗口阴影:阴影大小8, 深度255, 圆角内收大小10, 是否强制直角false, 阴影颜色0也就是黑色
|
||||
|
w.SetShadowInfo(8, 255, 10, false, 0) |
||||
|
|
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
// 运行消息循环, 程序会被阻塞在这里不退出, 当炫彩窗口数量为0时退出
|
||||
|
a.Run() |
||||
|
// 退出界面库释放资源
|
||||
|
a.Exit() |
||||
|
} |
After Width: | Height: | Size: 19 KiB |
@ -0,0 +1,61 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
_ "embed" |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/widget" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xc" |
||||
|
"github.com/twgh/xcgui/xcc" |
||||
|
) |
||||
|
|
||||
|
//go:embed 1.ico
|
||||
|
var icon []byte |
||||
|
|
||||
|
// 窗口图标句柄
|
||||
|
var hIcon = 0 |
||||
|
|
||||
|
func main() { |
||||
|
// 炫彩_初始化, 参数填true是启用D2D硬件加速, 效果更好. 但xp系统不支持d2d, 这时候你就得填false来关闭d2d了
|
||||
|
a := app.New(true) |
||||
|
// 创建普通窗口, 宽430, 高300, 标题是"xcgui", xcc.Window_Style_Default是使用默认窗口风格, xcc.Window_Style_Drag_Window是允许拖动窗口
|
||||
|
w := window.New(0, 0, 430, 300, "xcgui", 0, xcc.Window_Style_Default|xcc.Window_Style_Drag_Window) |
||||
|
|
||||
|
// 设置窗口边框大小:标题栏高度34
|
||||
|
w.SetBorderSize(0, 34, 0, 0) |
||||
|
// 设置窗口透明类型:阴影窗口, 带透明通道, 边框阴影, 窗口透明或半透明
|
||||
|
w.SetTransparentType(xcc.Window_Transparent_Shadow) |
||||
|
// 设置窗口透明度:255就是不透明
|
||||
|
w.SetTransparentAlpha(255) |
||||
|
// 设置窗口阴影:阴影大小8, 深度255, 圆角内收大小10, 是否强制直角false, 阴影颜色0也就是黑色
|
||||
|
w.SetShadowInfo(8, 255, 10, false, 0) |
||||
|
|
||||
|
// 从内存加载图片自适应大小
|
||||
|
hIcon = xc.XImage_LoadMemoryAdaptive(icon, 0, 0, 0, 0) |
||||
|
// 因为下面写信息框还要用, 所以这里禁止图片自动销毁, 这样就可以复用了, 否则用过之后它会自动释放掉的
|
||||
|
xc.XImage_EnableAutoDestroy(hIcon, false) |
||||
|
// 设置窗口图标
|
||||
|
w.SetIcon(hIcon) |
||||
|
|
||||
|
// 创建按钮
|
||||
|
btn := widget.NewButton(20, 50, 100, 30, "MessageBox", w.Handle) |
||||
|
// 注册按钮事件
|
||||
|
btn.Event_BnClick(func(pbHandled *bool) int { |
||||
|
// 创建信息框, 本质是一个模态窗口
|
||||
|
hWindow := a.Msg_Create("标题", "内容", xcc.MessageBox_Flag_Ok|xcc.MessageBox_Flag_Icon_Info, w.GetHWND(), xcc.Window_Style_Modal) |
||||
|
// 设置窗口边框大小
|
||||
|
xc.XWnd_SetBorderSize(hWindow, 1, 34, 1, 1) |
||||
|
// 设置窗口图标
|
||||
|
xc.XWnd_SetIcon(hWindow, hIcon) |
||||
|
// 显示模态窗口
|
||||
|
xc.XModalWnd_DoModal(hWindow) |
||||
|
return 0 |
||||
|
}) |
||||
|
|
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
// 运行消息循环, 程序会被阻塞在这里不退出, 当炫彩窗口数量为0时退出
|
||||
|
a.Run() |
||||
|
// 退出界面库释放资源
|
||||
|
a.Exit() |
||||
|
} |
After Width: | Height: | Size: 19 KiB |
@ -0,0 +1,45 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
_ "embed" |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xc" |
||||
|
"github.com/twgh/xcgui/xcc" |
||||
|
) |
||||
|
|
||||
|
//go:embed 1.ico
|
||||
|
var icon []byte |
||||
|
|
||||
|
// 窗口图标句柄
|
||||
|
var hIcon = 0 |
||||
|
|
||||
|
func main() { |
||||
|
// 炫彩_初始化, 参数填true是启用D2D硬件加速, 效果更好. 但xp系统不支持d2d, 这时候你就得填false来关闭d2d了
|
||||
|
a := app.New(true) |
||||
|
// 创建普通窗口, 宽430, 高300, 标题是"xcgui", xcc.Window_Style_Default是使用默认窗口风格, xcc.Window_Style_Drag_Window是允许拖动窗口
|
||||
|
w := window.New(0, 0, 430, 300, "xcgui", 0, xcc.Window_Style_Default|xcc.Window_Style_Drag_Window) |
||||
|
|
||||
|
// 设置窗口边框大小:标题栏高度34
|
||||
|
w.SetBorderSize(0, 34, 0, 0) |
||||
|
// 设置窗口透明类型:阴影窗口, 带透明通道, 边框阴影, 窗口透明或半透明
|
||||
|
w.SetTransparentType(xcc.Window_Transparent_Shadow) |
||||
|
// 设置窗口透明度:255就是不透明
|
||||
|
w.SetTransparentAlpha(255) |
||||
|
// 设置窗口阴影:阴影大小8, 深度255, 圆角内收大小10, 是否强制直角false, 阴影颜色0也就是黑色
|
||||
|
w.SetShadowInfo(8, 255, 10, false, 0) |
||||
|
|
||||
|
// 从内存加载图片自适应大小
|
||||
|
hIcon = xc.XImage_LoadMemoryAdaptive(icon, 0, 0, 0, 0) |
||||
|
// 因为下面写信息框还要用, 所以这里禁止图片自动销毁, 这样就可以复用了, 否则用过之后它会自动释放掉的
|
||||
|
xc.XImage_EnableAutoDestroy(hIcon, false) |
||||
|
// 设置窗口图标
|
||||
|
w.SetIcon(hIcon) |
||||
|
|
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
// 运行消息循环, 程序会被阻塞在这里不退出, 当炫彩窗口数量为0时退出
|
||||
|
a.Run() |
||||
|
// 退出界面库释放资源
|
||||
|
a.Exit() |
||||
|
} |
@ -0,0 +1,30 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
_ "embed" |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xc" |
||||
|
"github.com/twgh/xcgui/xcc" |
||||
|
) |
||||
|
|
||||
|
//go:embed XCGUI.dll
|
||||
|
var dll []byte |
||||
|
|
||||
|
func main() { |
||||
|
// 把 xcgui.dll 写出到windows临时目录
|
||||
|
err := xc.WriteDll(dll) |
||||
|
if err != nil { |
||||
|
panic(err) |
||||
|
} |
||||
|
// 炫彩_初始化, 参数填true是启用D2D硬件加速, 效果更好. 但xp系统不支持d2d, 这时候你就得填false来关闭d2d了
|
||||
|
a := app.New(true) |
||||
|
// 创建普通窗口, 宽300, 高200, 标题是"xcgui window", xcc.Window_Style_Default是使用默认窗口风格
|
||||
|
w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default) |
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
// 运行消息循环, 程序会被阻塞在这里不退出, 当炫彩窗口数量为0时退出
|
||||
|
a.Run() |
||||
|
// 退出界面库释放资源
|
||||
|
a.Exit() |
||||
|
} |
Binary file not shown.
@ -0,0 +1,39 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
_ "embed" |
||||
|
"github.com/twgh/xcgui/app" |
||||
|
"github.com/twgh/xcgui/widget" |
||||
|
"github.com/twgh/xcgui/window" |
||||
|
"github.com/twgh/xcgui/xc" |
||||
|
) |
||||
|
|
||||
|
// TODO 失败
|
||||
|
//go:embed XCGUI.dll
|
||||
|
var dll []byte |
||||
|
|
||||
|
//go:embed demo.zip
|
||||
|
var zip []byte |
||||
|
|
||||
|
func main() { |
||||
|
// 把 xcgui.dll 写出到windows临时目录
|
||||
|
_ = xc.WriteDll(dll) |
||||
|
a := app.New(true) |
||||
|
// 创建窗口从内存压缩包中的布局文件
|
||||
|
w := window.NewByLayoutZipMem(zip, "main.xml", "123456", 0, 0) |
||||
|
|
||||
|
// 获取窗口布局文件中的按钮
|
||||
|
btn := widget.NewButtonByName("viviman") |
||||
|
// 注册按钮被单击事件
|
||||
|
btn.Event_BnClick(func(pbHandled *bool) int { |
||||
|
a.Alert("提示", btn.GetText()+"被点击") |
||||
|
return 0 |
||||
|
}) |
||||
|
|
||||
|
// 调整布局, 必须
|
||||
|
w.AdjustLayout() |
||||
|
// 显示窗口
|
||||
|
w.Show(true) |
||||
|
a.Run() |
||||
|
a.Exit() |
||||
|
} |
Loading…
Reference in new issue