app

package
v1.3.392 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2024 License: MIT Imports: 3 Imported by: 88

Documentation

Overview

Package app 程序(炫彩全局API).

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewWindow added in v1.3.391

func NewWindow(x, y, cx, cy int32, pTitle string, hWndParent uintptr, XCStyle xcc.Window_Style_) *window.Window

NewWindow 窗口_创建.

x: 窗口左上角x坐标.

y: 窗口左上角y坐标.

cx: 窗口宽度.

cy: 窗口高度.

pTitle: 窗口标题.

hWndParent: 父窗口.

XCStyle: 窗口样式: xcc.Window_Style_.

func NewWindowByAttach added in v1.3.391

func NewWindowByAttach(hWnd uintptr, XCStyle xcc.Window_Style_) *window.Window

NewWindowByAttach 窗口_附加窗口, 返回窗口对象.

hWnd: 要附加的外部窗口句柄.

XCStyle: 窗口样式: xcc.Window_Style_.

func NewWindowByHandle added in v1.3.391

func NewWindowByHandle(hWindow int) *window.Window

NewWindowByHandle 从句柄创建窗口对象.

hWindow: 窗口资源句柄.

func NewWindowByLayout added in v1.3.391

func NewWindowByLayout(pFileName string, hParent int, hAttachWnd uintptr) *window.Window

NewWindowByLayout 从布局文件创建窗口对象, 失败返回nil.

pFileName: 布局文件名.

hParent: 父对象句柄.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutEx added in v1.3.391

func NewWindowByLayoutEx(pFileName, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) *window.Window

NewWindowByLayoutEx 从布局文件创建窗口对象, 失败返回nil.

pFileName: 布局文件名.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutStringW added in v1.3.391

func NewWindowByLayoutStringW(pStringXML string, hParent int, hAttachWnd uintptr) *window.Window

NewWindowByLayoutStringW 从布局文件字符串W创建窗口对象, 失败返回nil.

pStringXML: 字符串.

hParent: 父对象.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutStringWEx added in v1.3.391

func NewWindowByLayoutStringWEx(pStringXML, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) *window.Window

NewWindowByLayoutStringWEx 从布局文件字符串W创建窗口对象, 失败返回nil.

pStringXML: 字符串.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutZip added in v1.3.391

func NewWindowByLayoutZip(pZipFileName string, pFileName string, pPassword string, hParent int, hAttachWnd uintptr) *window.Window

NewWindowByLayoutZip 从压缩包中的布局文件创建窗口对象, 失败返回nil.

pZipFileName: zip文件名.

pFileName: 布局文件名.

pPassword: zip密码.

hParent: 父对象句柄.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutZipEx added in v1.3.391

func NewWindowByLayoutZipEx(pZipFileName string, pFileName string, pPassword, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) *window.Window

NewWindowByLayoutZipEx 从压缩包中的布局文件创建窗口对象, 失败返回nil.

pZipFileName: zip文件名.

pFileName: 布局文件名.

pPassword: zip密码.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutZipMem added in v1.3.391

func NewWindowByLayoutZipMem(data []byte, pFileName string, pPassword string, hParent int, hAttachWnd uintptr) *window.Window

NewWindowByLayoutZipMem 从内存压缩包中的布局文件创建窗口对象, 失败返回nil.

data: 布局文件数据.

pFileName: 布局文件名.

pPassword: zip密码.

hParent: 父对象句柄.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutZipMemEx added in v1.3.391

func NewWindowByLayoutZipMemEx(data []byte, pFileName string, pPassword, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) *window.Window

NewWindowByLayoutZipMemEx 从内存压缩包中的布局文件创建窗口对象, 失败返回nil.

data: 布局文件数据.

pFileName: 布局文件名.

pPassword: zip密码.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func NewWindowByLayoutZipResEx added in v1.3.391

func NewWindowByLayoutZipResEx(id int32, pFileName, pPassword, pPrefixName string, hParent int, hParentWnd, hAttachWnd, hModule uintptr) *window.Window

NewWindowByLayoutZipResEx 从RC资源zip压缩包中的布局文件创建窗口对象, 失败返回nil.

id: RC资源ID.

pFileName: 布局文件名.

pPassword: zip密码.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

hModule: 模块句柄, 可填0.

func NewWindowByName added in v1.3.391

func NewWindowByName(name string) *window.Window

NewWindowByName 从name创建对象, 失败返回nil.

name: name名称.

func NewWindowByUID added in v1.3.391

func NewWindowByUID(nUID int32) *window.Window

NewWindowByUID 从UID创建窗口对象, 失败返回nil.

nUID: UID值.

func NewWindowByUIDName added in v1.3.391

func NewWindowByUIDName(name string) *window.Window

NewWindowByUIDName 从UID名称创建对象, 失败返回nil.

name: name名称.

func NewWindowEx added in v1.3.391

func NewWindowEx(dwExStyle, dwStyle uint32, lpClassName string, x, y, cx, cy int32, pTitle string, hWndParent uintptr, XCStyle xcc.Window_Style_) *window.Window

NewWindowEx 窗口_创建扩展.

dwExStyle: 窗口扩展样式.

dwStyle: 窗口样式.

lpClassName: 窗口类名.

x: 窗口左上角x坐标.

y: 窗口左上角y坐标.

cx: 窗口宽度.

cy: 窗口高度.

pTitle: 窗口名.

hWndParent: 父窗口.

XCStyle: 窗口样式, xcc.Window_Style_.

Types

type App

type App struct {
}

App 程序. 封装了炫彩的全局API.

func New

func New(bD2D bool) *App

New 炫彩_初始化, 失败返回nil. 默认会在程序运行目录和系统system32目录寻找并加载xcgui.dll. 如果你想要更改xcgui.dll的路径, 那么请在调用本函数之前调用 xc.SetXcguiPath().

bD2D: 是否启用D2D.

Example
package main

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

func main() {
	// 可自定义xcgui.dll的路径, 如无需自定义, 则删掉这句代码.
	/*	err := xc.SetXcguiPath(`C:\Users\Administrator\Desktop\XCGUI.dll`)
		if err != nil {
			panic(err)
		}*/
	a := app.New(true)
	w := window.New(0, 0, 500, 500, "", 0, xcc.Window_Style_Default)
	w.ShowWindow(xcc.SW_SHOW)
	a.Run()
	a.Exit()
}

func (*App) AddFileSearchPath

func (a *App) AddFileSearchPath(pPath string) *App

炫彩_添加搜索路径, 添加文件搜索路径, 默认路径为exe目录和程序当前运行目录.

pPath: 文件夹.

func (*App) Alert

func (a *App) Alert(pTitle string, pText string) *App

炫彩_弹框, 弹出提示框.

pTitle: 提示框标题.

pText: 提示内容.

func (*App) AnsiToUnicode added in v1.3.360

func (a *App) AnsiToUnicode(pIn uintptr, inLen int32, pOut *string, outLen int32) int32

炫彩_A2U, 返回写入接收缓冲区字符数量.

pIn: 指向待转换的Ansi字符串指针.

inLen: pIn字符数量.

pOut: 指向接收转换后的Unicode字符串缓冲区指针.

outLen: pOut缓冲区大小,字符wchar_t单位.

func (*App) AtoUtf8 added in v1.3.310

func (a *App) AtoUtf8(pValue uintptr) uintptr

炫彩_文本A到UTF8.

pValue: 参数.

func (*App) AtoW added in v1.3.310

func (a *App) AtoW(pValue uintptr) string

炫彩_A2W.

pValue: 参数.

func (*App) CallUT added in v1.3.360

func (a *App) CallUT(f func())

CallUT 炫彩_调用界面线程, 调用UI线程, 设置回调函数, 在回调函数里操作UI. 与 CallUiThread 的区别是: 本函数没有2000个回调上限的限制, 回调函数可以直接使用匿名函数. 回调函数没有参数也没有返回值.

f: 回调函数, 没有参数也没有返回值, 可以直接使用匿名函数.

func (*App) CallUiThread

func (a *App) CallUiThread(pCall func(data int) int, data int) int

CallUiThread 炫彩_调用界面线程, 调用UI线程, 设置回调函数, 在回调函数里操作UI. 回调函数尽量不要使用匿名函数, 使用匿名函数意味着你每次都在创建1个新的回调, 超过2000个时, 程序必将panic. 如果使用 CallUiThreadEx 和 CallUiThreader 则没有此限制.

pCall: 回调函数.

data: 传进回调函数的用户自定义数据.

func (*App) CallUiThreadEx added in v1.3.352

func (a *App) CallUiThreadEx(pCall func(data int) int, data int) int

CallUiThreadEx 炫彩_调用界面线程, 调用UI线程, 设置回调函数, 在回调函数里操作UI. 与 CallUiThread 的区别是: 本函数没有2000个回调上限的限制, 回调函数可以直接使用匿名函数.

f: 回调函数.

data: 传进回调函数的用户自定义数据.

func (*App) CallUiThreader added in v1.3.352

func (a *App) CallUiThreader(u xc.UiThreader, data int) int

CallUiThreader 炫彩_调用界面线程, 调用UI线程, 设置回调函数, 在回调函数里操作UI. 与 CallUiThread 的区别是: 本函数没有2000个回调上限的限制, 回调函数可以直接使用匿名函数.

u: xc.UiThreader.

data: 传进回调函数的用户自定义数据.

func (*App) CombineRect

func (a *App) CombineRect(pDest *xc.RECT, pSrc1 *xc.RECT, pSrc2 *xc.RECT) *App

炫彩_组合矩形, 组合两个矩形区域.

pDest: 新的矩形区域.

pSrc1: 源矩形1.

pSrc2: 源矩形2.

func (*App) DebugToFileInfo

func (a *App) DebugToFileInfo(pInfo string) *App

DebugToFileInfo 炫彩_输出调试信息到文件, 打印调试信息到文件xcgui_debug.txt.

pInfo: 文本.

func (*App) EnableAutoDPI added in v1.3.380

func (a *App) EnableAutoDPI(bEnabel bool) *App

炫彩_启用自动DPI. 当启用后, 创建窗口时自动检测DPI调整UI缩放, 处理DPI改变消息; 禁用后,当DPI改变,需要手动设置窗口DPI.

bEnabel: 是否启用.

func (*App) EnableAutoExitApp

func (a *App) EnableAutoExitApp(bEnabel bool) *App

炫彩_启用自动退出程序, 启动或禁用自动退出程序, 当检测到所有用户创建的窗口都关闭时, 自动退出程序; 可调用 XC_PostQuitMessage() 手动退出程序.

bEnabel: 是否启用.

func (*App) EnableAutoRedrawUI added in v1.3.390

func (a *App) EnableAutoRedrawUI(bEnabel bool) *App

炫彩_启用自动重绘UI. 当修改UI后将自动调用重绘函数更新UI.

例如改变了按钮标题后, 将自动调用 xc.XEle_Redraw 更新UI, 默认不启用, 手动和自动各有优势.

bEnabel: 是否启用.

func (*App) EnableDPI added in v1.3.381

func (a *App) EnableDPI(bEnabel bool) bool

炫彩_启用DPI.

为go程序启用DPI的几种方式:

  1. 调用此函数.
  2. 使用程序清单文件.
  3. 自行调用Windows DPI命令.

参考[MSDN](https://learn.microsoft.com/zh-cn/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process)

bEnabel: 是否启用.

func (*App) EnableDebugFile

func (a *App) EnableDebugFile(bEnable bool) *App

炫彩_启用debug文件.

bEnable: 是否启用.

func (*App) EnableErrorMessageBox

func (a *App) EnableErrorMessageBox(bEnabel bool) *App

炫彩_启用错误弹窗, 启用错误弹出, 通过该接口可以设置遇到严重错误时不弹出消息提示框.

bEnabel: 是否启用.

func (*App) EnableGdiDrawText

func (a *App) EnableGdiDrawText(bEnable bool) *App

炫彩_启用GDI绘制文本, 将影响到以下函数: XDraw_TextOut, XDraw_TextOutEx, XDraw_TextOutA.

bEnable: 是否启用.

func (*App) EnableResMonitor

func (a *App) EnableResMonitor(bEnable bool) *App

炫彩_启用资源监视器.

bEnable: 是否启用.

func (*App) Exit

func (a *App) Exit() *App

Exit 炫彩_退出, 退出界面库释放资源.

func (*App) Free

func (a *App) Free(p uintptr) *App

炫彩_释放内存, 在UI库中释放内存.

p: 内存首地址.

func (*App) FreeLibrary

func (a *App) FreeLibrary(hModule uintptr) bool

炫彩_释放动态库, 系统API FreeLibrary.

hModule: 动态库模块句柄.

func (*App) GetD2dFactory added in v1.3.12

func (a *App) GetD2dFactory() int

炫彩_取D2D工厂, 开启D2D有效, 返回 ID2D1Factory* .

func (*App) GetDWriteFactory added in v1.3.12

func (a *App) GetDWriteFactory() int

炫彩_取DWrite工厂, 开启D2D有效, 返回 IDWriteFactory* .

func (*App) GetDefaultFont

func (a *App) GetDefaultFont() int

GetDefaultFont 炫彩_取默认字体. 返回字体句柄.

func (*App) GetHandleCount added in v1.3.390

func (a *App) GetHandleCount() int32

炫彩_取句柄总数. 获取当前所使用的句柄总数量, 返回当前所使用的句柄总数量.

func (*App) GetObjectByID

func (a *App) GetObjectByID(hWindow int, nID int32) int

炫彩_取对象从ID, 通过ID获取对象句柄, 不包括窗口对象.

hWindow: 所属窗口句柄.

nID: ID值.

func (*App) GetObjectByIDName

func (a *App) GetObjectByIDName(hWindow int, pName string) int

炫彩_取对象从ID名称, 通过ID名称获取对象句柄.

hWindow: 所属窗口句柄.

pName: ID名称.

func (*App) GetObjectByName

func (a *App) GetObjectByName(pName string) int

炫彩_取对象从名称, 通过name获取对象句柄.

pName: name名称.

func (*App) GetObjectByUID

func (a *App) GetObjectByUID(nUID int32) int

炫彩_取对象从UID, 通过UID获取对象句柄, 不包括窗口对象.

nUID: UID值.

func (*App) GetObjectByUIDName

func (a *App) GetObjectByUIDName(pName string) int

炫彩_取对象从UID名称, 通过UID名称获取对象句柄.

pName: UID名称.

func (*App) GetObjectType

func (a *App) GetObjectType(hXCGUI int) xcc.XC_OBJECT_TYPE

炫彩_取对象类型, 获取句柄类型, 返回: xcc.XC_OBJECT_TYPE, 以XC_开头的常量.

hXCGUI: 炫彩对象句柄.

func (*App) GetProcAddress

func (a *App) GetProcAddress(hModule uintptr, lpProcName string) uintptr

炫彩_取动态库中函数地址, 系统API GetProcAddress, 返回函数地址.

hModule: 动态库模块句柄.

lpProcName: 函数名.

func (*App) GetProperty

func (a *App) GetProperty(hXCGUI int, pName string) string

炫彩_取属性, 获取对象属性, 返回属性值.

hXCGUI: 对象句柄.

pName: 属性名.

func (*App) GetTextShowRect

func (a *App) GetTextShowRect(pString string, length int32, hFontX int, nTextAlign xcc.TextFormatFlag_, width int32, pOutSize *xc.SIZE) *App

GetTextShowRect 炫彩_取文本显示矩形.

pString: 字符串.

length: 字符串长度.

hFontX: 字体.

nTextAlign: 文本对齐: xcc.TextFormatFlag_.

width: 最大宽度.

pOutSize: 接收返回大小.

func (*App) GetTextShowSize

func (a *App) GetTextShowSize(pString string, length int32, hFontX int, pOutSize *xc.SIZE) *App

炫彩_取文本显示大小.

pString: 字符串.

length: 字符串长度.

hFontX: 字体.

pOutSize: 接收返回大小.

func (*App) GetTextShowSizeEx

func (a *App) GetTextShowSizeEx(pString string, length int32, hFontX int, nTextAlign xcc.TextFormatFlag_, pOutSize *xc.SIZE) *App

炫彩_取文本显示大小扩展.

pString: 字符串.

length: 字符串长度.

hFontX: 字体.

nTextAlign: 文本对齐方式, TextFormatFlag_, TextAlignFlag_, TextTrimming_.

pOutSize: 接收返回大小.

func (*App) GetTextSize

func (a *App) GetTextSize(pString string, length int32, hFontX int, pOutSize *xc.SIZE) *App

炫彩_取文本绘制大小.

pString: 字符串.

length: 字符串长度.

hFontX: 字体.

pOutSize: 接收返回大小.

func (*App) GetWicFactory added in v1.3.12

func (a *App) GetWicFactory() int

炫彩_取WIC工厂, 开启D2D有效, 返回 IWICImagingFactory* .

func (*App) HWindowFromHWnd

func (a *App) HWindowFromHWnd(hWnd uintptr) int

炫彩_转换HWND到HWINDOW, 通过窗口HWND句柄获取HWINDOW句柄.

hWnd: 窗口真实句柄HWND.

func (*App) InitFont

func (a *App) InitFont(pFont *xc.LOGFONTW, pName string, size int32, bBold bool, bItalic bool, bUnderline bool, bStrikeOut bool) *App

炫彩_初始化字体, 初始化LOGFONTW结构体.

pFont: LOGFONTW结构体指针.

pName: 字体名称.

size: 字体大小.

bBold: 是否为粗体.

bItalic: 是否为斜体.

bUnderline: 是否有下划线.

bStrikeOut: 是否有删除线.

func (*App) IsEnableD2D added in v1.3.12

func (a *App) IsEnableD2D() bool

炫彩_是否启用了D2D.

func (*App) IsHELE

func (a *App) IsHELE(hEle int) bool

炫彩_判断元素, 判断是否为元素句柄.

hEle: 元素句柄.

func (*App) IsHWINDOW

func (a *App) IsHWINDOW(hWindow int) bool

炫彩_判断窗口, 判断是否为窗口句柄.

hWindow: 窗口句柄.

func (*App) IsHXCGUI

func (a *App) IsHXCGUI(hXCGUI int, nType xcc.XC_OBJECT_TYPE) bool

炫彩_判断句柄包含类型, 判断句柄是否拥有该类型.

hXCGUI: 炫彩句柄.

nType: 句柄类型, XC_OBJECT_TYPE , 以XC_开头的常量.

func (*App) IsSViewExtend

func (a *App) IsSViewExtend(hEle int) bool

炫彩_判断滚动视图扩展元素, 判断元素是否从滚动视图元素扩展的新元素, 包含滚动视图元素.

hEle: 元素句柄.

func (*App) IsShape

func (a *App) IsShape(hShape int) bool

炫彩_判断形状对象, 判断是否为形状对象.

hShape: 形状对象句柄.

func (*App) LoadDll

func (a *App) LoadDll(pDllFileName string) uintptr

炫彩_加载DLL, 返回DLL模块句柄. 加载指定DLL, 并且调用DLL中函数LoadDll(), DLL中导出函数格式: int32 WINAPI LoadDll().

pDllFileName: DLL文件名.

func (*App) LoadLayout added in v0.0.3

func (a *App) LoadLayout(pFileName string, hParent int, hAttachWnd uintptr) int

炫彩_加载布局文件, 返回窗口句柄或布局句柄或元素句柄.

pFileName: 布局文件名.

hParent: 父对象句柄.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutEx added in v1.3.370

func (a *App) LoadLayoutEx(pFileName, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) int

炫彩_加载布局文件Ex, 返回窗口句柄或布局句柄或元素句柄.

pFileName: 布局文件名.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄, 窗口句柄或UI元素句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutFromStringW added in v1.3.340

func (a *App) LoadLayoutFromStringW(pStringXML string, hParent int, hAttachWnd uintptr) int

炫彩_加载布局文件从字符串W, 加载布局文件从内存字符串, 返回窗口句柄或布局句柄或元素句柄.

pStringXML: 字符串.

hParent: 父对象.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutFromStringWEx added in v1.3.370

func (a *App) LoadLayoutFromStringWEx(pStringXML, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) int

炫彩_加载布局文件从字符串WEx, 加载布局文件从内存字符串, 返回窗口句柄或布局句柄或元素句柄.

pStringXML: 字符串.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄, 窗口句柄或UI元素句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutZip added in v0.0.3

func (a *App) LoadLayoutZip(pZipFileName string, pFileName string, pPassword string, hParent int, hAttachWnd uintptr) int

炫彩_加载布局文件ZIP, 加载布局文件从zip压缩包中, 返回窗口句柄或布局句柄或元素句柄.

pZipFileName: zip文件名.

pFileName: 布局文件名.

pPassword: zip密码.

hParent: 父对象句柄.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutZipEx added in v1.3.370

func (a *App) LoadLayoutZipEx(pZipFileName string, pFileName string, pPassword, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) int

炫彩_加载布局文件ZIPEx, 加载布局文件从zip压缩包中, 返回窗口句柄或布局句柄或元素句柄.

pZipFileName: zip文件名.

pFileName: 布局文件名.

pPassword: zip密码.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄, 窗口句柄或UI元素句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutZipMem added in v0.0.3

func (a *App) LoadLayoutZipMem(data []byte, pFileName string, pPassword string, hParent int, hAttachWnd uintptr) int

炫彩_加载布局文件内存ZIP, 加载布局文件从zip压缩包中, 返回窗口句柄或布局句柄或元素句柄.

data: 内存块指针.

pFileName: 布局文件名.

pPassword: zip密码.

hParent: 父对象句柄.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutZipMemEx added in v1.3.370

func (a *App) LoadLayoutZipMemEx(data []byte, pFileName string, pPassword, pPrefixName string, hParent int, hParentWnd, hAttachWnd uintptr) int

炫彩_加载布局文件内存ZIPEx, 加载布局文件从zip压缩包中, 返回窗口句柄或布局句柄或元素句柄.

data: 布局文件数据.

pFileName: 布局文件名.

pPassword: zip密码.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄, 窗口句柄或UI元素句柄.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

func (*App) LoadLayoutZipResEx added in v1.3.380

func (a *App) LoadLayoutZipResEx(id int32, pFileName string, pPassword, pPrefixName string, hParent int, hParentWnd, hAttachWnd, hModule uintptr) int

炫彩_加载布局文件资源ZIP扩展. 加载布局文件从RC资源zip压缩包中, 返回窗口句柄或元素句柄.

id: RC资源ID.

pFileName: 布局文件名.

pPassword: zip密码.

pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.

hParent: 父对象句柄, 窗口句柄或UI元素句柄, 可填0.

hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用, 可填0.

hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.

hModule: 模块句柄, 可填0.

func (*App) LoadLibrary

func (a *App) LoadLibrary(lpFileName string) uintptr

炫彩_载入动态库, 系统API LoadLibrary, 返回动态库模块句柄.

lpFileName: 文件名.

func (*App) LoadResource added in v0.0.3

func (a *App) LoadResource(pFileName string) bool

炫彩_加载资源文件.

pFileName: 资源文件名.

func (*App) LoadResourceFromStringW added in v1.3.340

func (a *App) LoadResourceFromStringW(pStringXML string, pFileName string) bool

炫彩_加载资源文件从字符串W.

pStringXML: 字符串.

pFileName: 资源文件名.

func (*App) LoadResourceZip added in v0.0.3

func (a *App) LoadResourceZip(pZipFileName string, pFileName string, pPassword string) bool

炫彩_加载资源文件ZIP.

pZipFileName: zip文件名.

pFileName: 资源文件名.

pPassword: zip压缩包密码.

func (*App) LoadResourceZipMem added in v0.0.3

func (a *App) LoadResourceZipMem(data []byte, pFileName string, pPassword string) bool

炫彩_加载资源文件内存ZIP.

data: 资源文件数据.

pFileName: 资源文件名.

pPassword: zip压缩包密码.

func (*App) LoadResourceZipRes added in v1.3.380

func (a *App) LoadResourceZipRes(id int32, pFileName string, pPassword string, hModule uintptr) bool

炫彩_加载资源文件资源ZIP. 加载资源文件从RC资源zip压缩包中.

id: RC资源ID.

pFileName: 资源文件名.

pPassword: zip压缩包密码.

hModule: 模块句柄, 可填0.

func (*App) LoadStyle added in v0.0.3

func (a *App) LoadStyle(pFileName string) bool

炫彩_加载样式文件.

pFileName: 样式文件名称.

func (*App) LoadStyleFromStringW added in v1.3.310

func (a *App) LoadStyleFromStringW(pFileName string, pString string) bool

炫彩_加载样式文件从字符串W.

pFileName: 样式文件名.

pString: 字符串.

func (*App) LoadStyleZip added in v0.0.3

func (a *App) LoadStyleZip(pZipFile string, pFileName string, pPassword string) bool

炫彩_加载样式文件ZIP.

pZipFile: ZIP文件名.

pFileName: 文件名.

pPassword: 密码.

func (*App) LoadStyleZipMem added in v0.0.3

func (a *App) LoadStyleZipMem(data []byte, pFileName string, pPassword string) bool

炫彩_加载样式文件从内存ZIP.

data: 样式文件数据.

pFileName: 文件名.

pPassword: 密码.

func (*App) LoadStyleZipRes added in v1.3.380

func (a *App) LoadStyleZipRes(id int32, pFileName string, pPassword string, hModule uintptr) bool

炫彩_加载样式文件从资源ZIP. 从RC资源中的ZIP包中, 加载样式文件.

id: RC资源ID.

pFileName: 文件名.

pPassword: 密码.

hModule: 模块句柄, 可填0.

func (*App) Malloc

func (a *App) Malloc(size int32) *App

炫彩_分配内存, 在UI库中申请内存, 返回: 内存首地址.

size: 大小, 字节为单位.

func (*App) MessageBox

func (a *App) MessageBox(pTitle, pText string, nFlags xcc.MessageBox_Flag_, hWndParent uintptr, XCStyle xcc.Window_Style_) xcc.MessageBox_Flag_

MessageBox 炫彩_消息框. 返回值如下: xcc.MessageBox_Flag_Ok: 点击确定按钮退出. xcc.MessageBox_Flag_Cancel: 点击取消按钮退出. xcc.MessageBox_Flag_Other: 其他方式退出.

pTitle: 标题.

pText: 内容文本.

nFlags: 标识: xcc.MessageBox_Flag_.

hWndParent: 父窗口句柄(真实的窗口句柄).

XCStyle: xcc.Window_Style_.

func (*App) Msg_Create added in v1.3.12

func (a *App) Msg_Create(pTitle, pText string, nFlags xcc.MessageBox_Flag_, hWndParent uintptr, XCStyle xcc.Window_Style_) int

Msg_Create 消息框_创建, 返回消息框窗口句柄. 此窗口是一个模态窗口, 弹出窗口请调用 xc.XModalWnd_DoModal().

pTitle: 标题.

pText: 内容文本.

nFlags: 标识: xcc.MessageBox_Flag_.

hWndParent: 父窗口句柄(真实的窗口句柄).

XCStyle: xcc.Window_Style_.

func (*App) Msg_CreateEx added in v1.3.310

func (a *App) Msg_CreateEx(dwExStyle, dwStyle uintptr, lpClassName string, pTitle, pText string, nFlags xcc.MessageBox_Flag_, hWndParent uintptr, XCStyle xcc.Window_Style_) int

Msg_CreateEx 消息框_创建扩展, 返回消息框窗口句柄. 此窗口是一个模态窗口, 弹出窗口请调用 xc.XModalWnd_DoModal().

dwExStyle: 窗口扩展样式.

dwStyle: 窗口样式.

lpClassName: 窗口类名.

pTitle: 标题.

pText: 内容文本.

nFlags: 标识: xcc.MessageBox_Flag_.

hWndParent: 父窗口句柄(真实的窗口句柄).

XCStyle: xcc.Window_Style_.

func (*App) NotifyMsg_Popup added in v1.3.310

func (a *App) NotifyMsg_Popup(position xcc.Position_Flag_, pTitle, pText string, hIcon int, skin xcc.NotifyMsg_Skin_) int

通知消息_弹出, 返回窗口句柄, 未实现, 预留接口.

position: 位置, Position_Flag_.

pTitle: 标题.

pText: 内容.

hIcon: 图标.

skin: 外观类型, NotifyMsg_Skin_.

func (*App) NotifyMsg_PopupEx added in v1.3.310

func (a *App) NotifyMsg_PopupEx(position xcc.Position_Flag_, pTitle, pText string, hIcon int, skin xcc.NotifyMsg_Skin_, bBtnClose, bAutoClose bool, nWidth, nHeight int32) int

通知消息_弹出扩展, 返回窗口句柄, 未实现, 预留接口.

position: 位置, Position_Flag_.

pTitle: 标题.

pText: 内容.

hIcon: 图标.

skin: 外观类型, NotifyMsg_Skin_.

bBtnClose: 是否启用关闭按钮.

bAutoClose: 是否自动关闭.

nWidth: 自定义宽度, -1(使用默认值).

nHeight: 自定义高度, -1(使用默认值).

func (*App) NotifyMsg_SetBorderSize added in v1.3.310

func (a *App) NotifyMsg_SetBorderSize(hWindow int, left, top, right, bottom int32) *App

通知消息_置边大小, 设置通知消息面板边大小.

hWindow: 通知消息所属窗口句柄, 如果未指定那么认为是桌面通知消息.

left: 左边.

top: 顶边.

right: 右边.

bottom: 底边.

func (*App) NotifyMsg_SetCaptionHeight added in v1.3.310

func (a *App) NotifyMsg_SetCaptionHeight(hWindow int, nHeight int32) *App

通知消息_置标题高度.

hWindow: 通知消息所属窗口句柄, 如果未指定那么认为是桌面通知消息.

nHeight: 高度.

func (*App) NotifyMsg_SetDuration added in v1.3.310

func (a *App) NotifyMsg_SetDuration(hWindow int, duration uint32) *App

通知消息_置持续时间.

hWindow: 通知消息所属窗口句柄, 如果未指定那么认为是桌面通知消息.

duration: 持续时间.

func (*App) NotifyMsg_SetParentMargin added in v1.3.310

func (a *App) NotifyMsg_SetParentMargin(hWindow int, left, top, right, bottom int32) *App

通知消息_置父边距 设置通知消息与父对象的四边间隔.

hWindow: 通知消息所属窗口句柄, 如果未指定那么认为是桌面通知消息.

left: 左侧间隔, 未实现, 预留功能.

top: 顶部间隔.

right: 右侧间隔.

bottom: 底部间隔, 未实现, 预留功能.

func (*App) NotifyMsg_SetSpace added in v1.3.310

func (a *App) NotifyMsg_SetSpace(hWindow int, nSpace int32) *App

通知消息_置间隔.

hWindow: 通知消息所属窗口句柄, 如果未指定那么认为是桌面通知消息.

nSpace: 间隔大小.

func (*App) NotifyMsg_SetWidth added in v1.3.310

func (a *App) NotifyMsg_SetWidth(hWindow int, nWidth int32) *App

通知消息_置宽度, 设置默认宽度.

hWindow: 通知消息所属窗口句柄, 如果未指定那么认为是桌面通知消息.

nWidth: 宽度.

func (*App) PostMessage

func (a *App) PostMessage(hWindow int, msg uint32, wParam, lParam uintptr) bool

炫彩_投递窗口消息.

hWindow: 窗口句柄.

msg:.

wParam:.

lParam:.

func (*App) PostQuitMessage

func (a *App) PostQuitMessage(nExitCode int32) *App

炫彩_PostQuitMessage, 发送WM_QUIT消息退出消息循环.

nExitCode: 退出码.

func (*App) Print added in v1.3.310

func (a *App) Print(level int32, pInfo string) *App

炫彩_打印调试信息, 打印调试信息到文件xcgui_debug.txt.

level: 级别.

pInfo: 信息.

func (*App) RectInRect

func (a *App) RectInRect(pRect1 *xc.RECT, pRect2 *xc.RECT) bool

炫彩_判断矩形相交, 判断两个矩形是否相交及重叠.

pRect1: 矩形1.

pRect2: 矩形2.

func (*App) RegisterWindowClassName

func (a *App) RegisterWindowClassName(pClassName string) bool

炫彩_注册窗口类名, 如果是在DLL中使用, 那么DLL卸载时需要注销窗口类名, 否则DLL卸载后, 类名所指向的窗口过程地址失效.

pClassName: 类名.

func (*App) Run

func (a *App) Run() *App

Run 炫彩_运行. 运行消息循环, 当炫彩窗口数量为0时退出.

func (*App) SendMessage

func (a *App) SendMessage(hWindow int, msg uint32, wParam, lParam uintptr) uintptr

炫彩_发送窗口消息.

hWindow: 窗口句柄.

msg:.

wParam:.

lParam:.

func (*App) SetActivateTopWindow

func (a *App) SetActivateTopWindow() bool

SetActivateTopWindow 炫彩_激活窗口, 激活当前进程最上层窗口.

func (*App) SetD2dTextRenderingMode added in v1.3.12

func (a *App) SetD2dTextRenderingMode(mode xcc.XC_DWRITE_RENDERING_MODE_) *App

炫彩_置D2D文本渲染模式.

mode: 渲染模式, XC_DWRITE_RENDERING_MODE_ .

func (*App) SetDefaultFont

func (a *App) SetDefaultFont(hFontX int) *App

炫彩_置默认字体.

hFontX: 炫彩字体句柄.

func (*App) SetLayoutFrameColor

func (a *App) SetLayoutFrameColor(color int) *App

炫彩_置布局边界颜色.

color: xc.RGBA 颜色值.

func (*App) SetPaintFrequency

func (a *App) SetPaintFrequency(nMilliseconds int32) *App

炫彩_置绘制频率, 设置UI的最小重绘频率.

nMilliseconds: 重绘最小时间间隔, 单位毫秒.

func (*App) SetProperty

func (a *App) SetProperty(hXCGUI int, pName string, pValue string) bool

炫彩_置属性, 设置对象属性.

hXCGUI: 对象句柄.

pName: 属性名.

pValue: 属性值.

func (*App) SetTextRenderingHint

func (a *App) SetTextRenderingHint(nType int32) *App

炫彩_置文本渲染质量, 设置文本渲染质量.

nType: 参见GDI+ TextRenderingHint 定义.

func (*App) SetWindowIcon added in v1.3.380

func (a *App) SetWindowIcon(hImage int) *App

炫彩_置窗口图标. 全局窗口图标, 所有未设置图标的窗口, 都将使用此默认图标.

hImage: 图标句柄.

func (*App) ShowAndRun added in v1.3.340

func (a *App) ShowAndRun(hWindow int) *App

ShowAndRun 显示窗口并调用炫彩_运行.

hWindow: 炫彩窗口句柄.

Example
package main

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

func main() {
	a := app.New(true)
	w := window.New(0, 0, 500, 500, "", 0, xcc.Window_Style_Default)
	a.ShowAndRun(w.Handle)
	a.Exit()
}

func (*App) ShowLayoutFrame

func (a *App) ShowLayoutFrame(bShow bool) *App

炫彩_显示布局边界, 显示布局对象边界.

bShow: 是否显示.

func (*App) ShowSvgFrame added in v1.3.310

func (a *App) ShowSvgFrame(bShow bool) *App

炫彩_显示边界.

bShow: 是否显示.

func (*App) Sys_ShellExecute

func (a *App) Sys_ShellExecute(hwnd uintptr, lpOperation string, lpFile string, lpParameters string, lpDirectory string, nShowCmd xcc.SW_) uintptr

对指定文件执行操作. 如果函数成功,则返回大于 32 的值。如果函数失败,则返回指示失败原因的错误值.

hwnd: 用于显示 UI 或错误消息的父窗口的句柄。如果操作与窗口无关,则此值可以为0.

lpOperation: 填“open”则打开lpFlie文档. 其它操作详见: https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutew.

lpFile: 想用关联的程序打印或打开的一个程序名或文件名.

lpParameters: 如果lpFile是一个可执行文件,则这个字串包含了传递给执行程序的参数.

lpDirectory: 想使用的默认路径完整路径.

nShowCmd: 定义了如何显示启动程序的常数值: xcc.SW_.

func (*App) UnicodeToAnsi added in v1.3.360

func (a *App) UnicodeToAnsi(pIn string, inLen int32, pOut uintptr, outLen int32) int32

炫彩_U2A, 返回写入接收缓冲区字节数量.

pIn: 待转换的Unicode字符串.

inLen: pIn字符数量.

pOut: 指向接收转换后的Ansi字符串缓冲区指针.

outLen: pOut缓冲区大小, 字节单位.

func (*App) Utf8toA added in v1.3.310

func (a *App) Utf8toA(pUtf8 uintptr) uintptr

炫彩_UTF8到文本A.

pUtf8: utf8字符串指针.

func (*App) Utf8toW added in v1.3.310

func (a *App) Utf8toW(pUtf8 uintptr) string

炫彩_UTF8到文本W.

pUtf8: 参数.

func (*App) Utf8toWEx added in v1.3.310

func (a *App) Utf8toWEx(pUtf8 uintptr, length int32) string

炫彩_UTF8到文本W扩展.

pUtf8: utf8字符串指针.

length: utf8字符串长度.

func (*App) WtoA added in v1.3.310

func (a *App) WtoA(pValue string) uintptr

炫彩_W2A.

pValue: 参数.

func (*App) WtoUtf8 added in v1.3.310

func (a *App) WtoUtf8(pValue string) uintptr

炫彩_文本W到UTF8.

pValue: 字符串.

func (*App) WtoUtf8Ex added in v1.3.310

func (a *App) WtoUtf8Ex(pValue string, length int32) uintptr

炫彩_文本W到UTF8扩展.

pValue: 字符串.

length: 字符串长度.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL