首页 > 其他分享 >wxWidgets UI 库 简单示例和 高清屏 DPI 适配

wxWidgets UI 库 简单示例和 高清屏 DPI 适配

时间:2022-09-23 21:56:47浏览次数:65  
标签:vc wxWidgets 示例 适配 source 3.2 https 属性

wxWidgets 是一种跨平台开发的 UI 库,win mac OS ubuntu 都有很好的本地实现。

版权友好,个人商业用途都可以,静态编译也比较容易,开发的比较出名的软件有:Filezilla 、Aegisub

官网

https://www.wxwidgets.org/downloads/

https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.1/wxWidgets-3.2.1.7z
源码

https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.1/wxWidgets-3.2.1-docs-chm.zip
手册

编译源码
找到这个路径:D:\source\vc\wxWidgets\wxWidgets-3.2.1\build\msw下的 wx_vc17.sln,用vs2022打开。

官方文档中列出的 VC 与 MSVS 对应关系:

VC++ 7, 8, 9, 10, 11, 12, 14, 15 and 16 ( MSVS 2003, 2005, 2008, 2010, 2012, 2013, 2015, 2017 and 2019)

选择Debug,x64,配置类型选择静态库!然后生成解决方案。这样就在 D:\source\vc\wxWidgets\wxWidgets-3.2.1\lib\vc_x64_lib 路径下生成了vc_x64_lib文件夹。

创建一个空项目,编辑工程属性,须在【项目属性页】做如下修改:

1
配置属性 - C/C++ - 常规 - 附加包含目录:添加
D:\source\vc\wxWidgets\wxWidgets-3.2.1\include\msvc
D:\source\vc\wxWidgets\wxWidgets-3.2.1\include

2
配置属性 - C/C++ - 预处理器 - 预处理器定义:添加 WXMSW 、_UNICODE、NDEBUG,这里若不加 _UNICODE,
则需要在 配置属性 - 高级 - 高级属性 - 字符集 选择【使用 Unicode 字符集】

_UNICODE
NDEBUG

3
配置属性 - 链接器 - 常规 - 附加库目录:添加 D:\source\vc\wxWidgets\wxWidgets-3.2.1\lib\vc_x64_lib

4
配置属性 - 链接器 - 系统 - 子系统:选择【窗口】(默认为【窗口】)

有很多例子,基本的都有
D:\source\vc\wxWidgets\wxWidgets-3.2.1\samples

 

DPI 适配,现在显示器越来越大了,分辨率也越来越大,尤其是笔记本,一般都工作在缩放模式 如的笔记本:

如果  应用未做 DPI 适配,显示效果就是直接放大,显示效果很模糊

 

如何让 程序来动态处理 DIP

Windows上的高 DPI 桌面应用程序开发
https://learn.microsoft.com/zh-cn/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows

解决 dpi 显示问题
https://stackoverflow.com/questions/67456410/wxwidgets-dpi-awareness-v2-not-working-as-expected

具体的做法是:

右击项目 -> 配置属性 -> 清单工具 -> 输入和输出 -> 附加清单文件
D:\source\vc\wxWidgets\wxWidgets-3.2.1\include\wx\msw\wx_dpi_aware.manifest %(AdditionalManifestFiles)

我看了下 git log ,是2019年的时候加入的,所以要用新版本的 wxWidgets 

 

标签:vc,wxWidgets,示例,适配,source,3.2,https,属性
From: https://www.cnblogs.com/ningci/p/16724477.html

相关文章

  • cesium教程8-官方示例翻译-图层亮度对比度调整
     完整示例代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><meta......
  • C#中使用Invoke和BeginInvoke跨线程更新UI控件示例代码
    在多线程开发过程中,有时候需要更新UI控件内容,但是在c#多线程Task、Thread、BackgroundWork中不能直接更新UI控件,否则会报调用线程不能访问此对象,因为它由另一个线程拥有The......
  • ReentrantReadWriteLock 使用示例
    ReadWriteLock使用示例1.使用场景前两天同事发给我一个工具类,封装了调用第三方接口的方法。第三方接口调用需要带上访问凭据accessToken,需要先调用login接口传入usern......
  • iOS技巧:移除/添加导航栏黑边(iOS13适配)
    “我正在参加《掘金·帆船计划》”介绍背景:移除导航栏下方的黑色边框在iOS15中不起作用原因:必须使用iOS13之后的APIUINavigationBar外观设置生效UIKIT_EXTERNAPI_A......
  • Android 11 存储权限适配指南
    (1)Android权限分类普通权限:只需要在清单文件中注册即可危险权限:需要在代码中动态申请,以弹系统Dialog的形式进行请求特殊权限:需要在代码中动态申请,以跳系统Activity......
  • 结构性模式:适配器模式
    结构型模式:描述如何将类或者对象结合在一起的更大的结构结构性模式,可以分为,类结构模式和对象结构模式:  适配器模式:           ......
  • cesium教程7-官方示例模型要素选择翻译
     源代码示例:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>天地图</title><!--引用cesium的js和css,天地图的扩展js--><!--<s......
  • Python 使用requests下载图片的方法及示例代码
    Python中可以使用requests模块执行GET和POST请求,requests继承了urllib2的所有特性。requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响......
  • 路由聚合示例
    原理不作介绍,前置掌握,仅示例常规题:212.56.132.0/24212.56.133.0/24212.56.134.0/24212.56.135.0/24流程:212.56.1000......
  • Qt官方示例Demo介绍 以及 Qt Examples and Demos(Qt的例子和演示)(转)
    Qt官方示例Demo介绍:https://blog.csdn.net/qq582880551/article/details/123313751QtExamplesandDemos(Qt的例子和演示):https://blog.csdn.net/luoting2017/article/......