龙空技术网

深入分析基于框架窗口的应用

第2学堂 60

前言:

眼前小伙伴们对“一个应用程序窗口与多个应用程序相对应对吗”可能比较注重,大家都需要分析一些“一个应用程序窗口与多个应用程序相对应对吗”的相关知识。那么小编也在网上搜集了一些对于“一个应用程序窗口与多个应用程序相对应对吗””的相关文章,希望你们能喜欢,姐妹们一起来了解一下吧!

复杂应用最常见的桌面程序,基本都使用框架式的主窗口。本节涉及:

常见的应用中,哪些使用了框架窗口?wxWidgets 项目配置详解(为将来手工写wxWigets项目配置打基础);复习如何使用Code::Blocks的向导,创建一个基于框架窗口的wxWidgets项目;wxApp 和 wxFrame 快速了解;如何修改一个wxWigets应用程序的图标;框架窗口的界面组成相关代码;

第2学堂原创

0. 视频

视频加载中...

1. 框架窗口概述

第2学堂原创

框架窗口通常用于功能相对复杂的GUI应用的主窗口。对应的,功能相对简单的应用,可以使用对话框作为主窗口。

功能相对复杂的一个体现,就是功能多,因此对应所需要的功能入口也会比较多;并且,假设有三个功能A、功能B、功能C,往往在GUI体现上,往往还不止三个入口。为了方便用户在不同操作过程中,都可以用到某一功能,同一功能往往会有多个图形交互入口。

例如:新建文件功能,有可能在主菜单、工具栏,以及某些地方的快捷(右键)菜单(也称弹出菜单),都会有入口。

尽管大量的框架窗口应用,存在主菜单、工具栏、状态栏,但框架型窗口应用最主要的组成,是用于展示其主数据的UI(用户交互)组件。比如:

画图程序,主要数据界面是用户正在画的图;记事本程序,主要数据界面是用户正在编辑的文本内容;VS Code 或 我们熟悉的 Code::Blocks,主要数据界面用户正在编辑的代码文件。

第2学堂原创

2. wxWigets项目主要构建配置(Windows)

建议复制到备忘文件,或者收藏本课堂,以备将来使用别的IDE(比如 VS Code)写wxWidgets时,需要手工配置。

2.1 编译选项附加编译选项-pipe-mthreads-Wno-unused-local-typedefs宏(#define)__GNUWIN32____WXMSW__wxUSE_UNICODE

第2学堂原创

2.2 链接选项需链接的 Windows 库

wxWidgets 底层使用原生操作系统的UI、网络等功能,因此在 Windows 系统下,wxWidgets 的的项目构建目标,不管是调试(DEBUG)或发行(RELEASE)复本,都需要以下 Windows 库。

这些库并非直接由 Windows 提供,由于我们是在 Windows 使用 GCC 编译环境,因此它们是由 MinGW32 包装、提供)

libkernel32.a - Windows 核心层libuser32.a - Windows 用户层libgdi32.a - Windows 绘图层libwinspool.a - Windows 后台处理服务层 (比如处理打印任务)libcomdlg32.a - Windows 通用对话框libadvapi32.a - Windows 高级APIlibshell32.a - Windows Shelllibole32.a - Windows OLE (应用对象链接与嵌入)库liboleaut32.a - Windows OLElibuuid.a - 创建UUIDlibcomctl32.a - Windows Common Controls Library 通用界面控件库libwsock32.a - Windows 网络基础库libodbc32.a - Windows ODBC (通用数据库访问)库需链接的 wxWidgets 库调试版构建目标:libwxmsw28ud_core.a、libwxbase28ud.a、libwxpngd.a、libwxzlibd.a发行版构建目标:libwxmsw28u_core.a、libwxbase28u.a、libwxpng.a、libwxzlib.a2.3 搜索路径

除 wxWidgets 的头文件(\include)、库文件(\lib)所在路径之外,还需要额外有 wxWidgets 自带资源(主要是一些图标)的搜索路径。通常它和 wxWidgets 头文件在同一个文件夹下。

下面使用 XXX 表示 wxWidgets 开发库安装在你电脑上目录。

类型

路径

备注

头文件

XXX\include

-

库文件

XXX\lib\gcc_lib

gcc_lib为静态链接库,gcc_dll为动态链接库

资源文件

XXX\include

和头文件一样

第2学堂原创

3. wxWidgets 程序入口

由于不同操作系统、或不同的GUI系统,所提供的 GUI 程序的入口函数存在不同(其实主要就是 Windows 系统搞了个 “WinMain”),wxWidgets 使用宏定义,将各系统的不同入口包装起来,然后把 bool wxApp::OnInit() 方法变成事实上的新入口。

第2学堂原创

4. 修改 wxWidgets 程序图标

打开项目默认生成的 resource.rc (资源文件),将第一行:

aaaa ICON "wx/msg/std.ico"

改为:

aaaa ICON "所在路径/图标文件.ico"

强烈建议将自己的图标放在项目文件的同一目录,如此,在上述资源文件的图标文件,无需写路径,比如本课堂视频中举的例子:

aaaa ICON "d2school.ico"

自己的图标放在项目文件的同一目录,如此,在上述资源文件的图标文件,无需写路径,比如本课堂视频中举的例子:

aaaa ICON "d2school.ico"

正文结束

第2学堂原创

标签: #一个应用程序窗口与多个应用程序相对应对吗