You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
3.8 KiB

4 years ago
# walik 库
>
> 主要的 [API](https://godoc.org/github.com/lxn/walk)
>
>
## 注意事项
* 代码应包含文件
> 正常的 “.go” 文件、 “.manifest” 和由 rsrc 生成的 “.syso” 文件,必须保证文件存在,都在程序无法正常运行和调试。
>
>
> 否则会报:TTM_ADDTOOL failed 等异常!
>
> 生成 “.syso” 文件的命令:rsrc -manifest main.manifest -ico main.ico -o main.syso
>
> 其中 rsrc 的应用目录应配置到【系统环境变量】里。
![配置详情](img/1.png)
>
* 开发测试文件配置应该为
![配置详情](img/2.png)
>
# 包结构划分
> 功能划分多个子包
* **declarative**
* **examples/actions**
* **examples/clipboard**
* **examples/databinding**
* **examples/drawing**
* **examples/dropfiles**
* **examples/externalwidgets**
* **examples/filebrowser**
* **examples/gradientcomposite**
* **examples/imageicon**
* **examples/imageview**
* **examples/imageviewer**
* **examples/linklabel**
* **examples/listbox**
* **examples/listbox_ownerdrawing**
* **examples/logview**
* **examples/multiplepages**
* **examples/notifyicon**
* **examples/progressindicator**
* **examples/radiobutton**
* **examples/settings**
* **examples/slider**
* **examples/statusbar**:此示例演示了状态栏,包括连接到主窗口底部的尺寸夹。
* **examples/tableview**
* **examples/webview**
* **examples/webview_events**
* **tools/ui2walk**
# 什么是manifest
* 介绍:
> Manifests是伴随并描述并行程序集或隔离的应用程序的XML文件。
> Manifests通过装配的assemblyIdentity元素唯一标识装配。
> 它们包含用于绑定和激活的信息,例如COM类,接口和类型库,这些信息通常存储在注册表中。
> Manifests还指定了组成程序集的文件,如果程序集作者希望对它们进行版本控制,则Manifests可以包括Windows类。并排程序集未在系统上注册,但可用于系统和清单文件中指定依赖项的应用程序和其他程序集。
> 是一种xml文件,标明所依赖的side-by-side组建。
> 如果用VS开发,可以Set通过porperty->configuration properties->linker->manifest file->Generate manifest To Yes来自动创建manifest来指定系统的和CRT的assembly版本。
* 样例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
* 详解
> 观察上面的manifest文件:
> <xml>这是xml声明:
版本号----<?xml version="1.0"?>
这是必选项。 尽管以后的 XML 版本可能会更改该数字,但是 1.0 是当前的版本。
编码声明------<?xml version="1.0" encoding="UTF-8"?>
这是可选项。 如果使用编码声明,必须紧接在 XML 声明的版本信息之后,并且必须包含代表现有字符编码的值。
standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。