请先看上一篇《wxWidgets入门》。

修改MyFrame.h:

#ifndef MYFRAME_H
#define MYFRAME_H #include <wx/wxprec.h> #ifndef WX_PRECOMP
#include <wx/wx.h>
#endif // WX_PRECOMP class MyFrame : public wxFrame
{
public:
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
private:
wxToolBar *toolBar; // 给MyFrame增加一个ToolBar
wxButton *button; // 这个button将放置在MyFrame上
}; #endif // MYFRAME_H

修改MyFrame.cpp:

#include "MyFrame.h"
#include "ToolId.h" MyFrame :: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame(NULL, wxID_ANY, title, pos, size)
{
// 新建工具条,作为MyFrame的子窗口
toolBar = new wxToolBar(this, wxID_ANY);
// 新建button,作为toolbar的子窗口
button = new wxButton(toolBar, ID_BUTTON, wxT("Click me"));
// 告知ToolBar它有了一个新Control
toolBar->AddControl(button);
// 让MyFrame使用该ToolBar
SetToolBar(toolBar);
}

进一步的说明:

1) 除了让control成为ToolBar的子窗口,我们还要让ToolBar管理这些control的布局等,所以我们需要toolBar->AddControl(button)这句话;

2) SetToolBar(toolBar)函数(包括CreateStatusBar)可以让MyFrame自动调整GetClientSize()的返回值(但不调整绘图时的坐标原点)。

我们也可以使用CreateToolBar()这个wxFrame的成员函数。

3) 如果你需要多个ToolBar,就没办法用SetToolBar函数,所以你要自己管理Client的大小。一个办法是用GetSize函数计算出工具条占用空间,然后用一个wxWindow(或其他符合要求的widgets)作为MyFrame的子窗口占满Client剩余空间,所有的绘图操作在这个子窗口上做。事实上即使是仅有一个ToolBar也推荐这种方法;因为这样在绘图时可以不用考虑ToolBar所占据的坐标空间。

4) 也许我们还有其他更完善的方法管理多个ToolBar?

wxWidgets:给窗口添加工具条的更多相关文章

  1. QT中添加工具条QToolBar

    项目用的QT5.3,设计师中没有直接拖工具条的控件,那要怎么加工具条呢? 其实.ui文件是xml类型的文本文件,用uedit或记事本打开,找到之前有的工具条段落,复制粘贴一个,保存,再在vs中用设计师 ...

  2. 在对话框中利用CToolBar类添加工具条的方法

    UINT BASED_CODE DockTool[]={ID_NEWGAME,ID_SAVE,ID_OPEN,ID_SEPARATOR,ID_COPYFEN,ID_PASTEFEN,ID_SEPARA ...

  3. IOS开发 键盘添加工具条 退出 上一项 下一项 简单实现

    首先设置每个 UITextField 的 inputAccessoryView 为UIToolBar : 将所有的 textField 放入一个数组: 设置 UITextField UITextFie ...

  4. AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件

    AJ分享,必须精品 一:效果 二:封装好的工具条 NYComposeToolbar.h 带代理方法 #import <UIKit/UIKit.h> typedef enum { NYCom ...

  5. 如何往IE工具条添加按钮(转载)

    如何往IE工具条添加按钮 问题提出:金山词霸.网络蚂蚁等软件安装后会向IE的工具条添加自己的按钮.按下按钮后还会作出相应的动作,这种功能是如何实现的呢?读完本文,您也可以将自己应用程序的按钮添加到IE ...

  6. Qt__主窗口、菜单和工具条(QMainWindow,QMenu,QToolBar)

    转自豆子空间 主窗口 Qt的GUI程序有一个常用的顶层窗口,叫做MainWindow.MainWindow继承自QMainWindow.QMainWindow窗口分成几个主要的区域: 最上面是Wind ...

  7. 雷林鹏分享:jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框

    jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框 您可以创建一个带有工具栏(toolbar)和按钮(button)的对话框(dialog),可以从 HTML 标记创建.这个教程描述 ...

  8. 百度地图API示例之添加/删除工具条、比例尺控件

    代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...

  9. DHTMLX 前端框架 建立你的一个应用程序教程(四)--添加一个工具条toolbar

    工具条例子 样本如下: 这里我们使用的是dhtmlxToolbar 组件. 添加工具栏到布局中: 1.使用attachToolbar() 方法初始化页面 添加代码到index.html中 dhtmlx ...

随机推荐

  1. js相关小技巧

    1.清空type=file的input文件上传控件的内容,相当于重置.txtFile是该input的id $("#txtFile").val(""); $(&q ...

  2. MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(四)

    MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...

  3. 了解SAGA

    萨迦(尤指古代挪威或冰岛讲述冒险经历和英雄业绩的长篇故事)

  4. STL标准库-容器适配器

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 上一节介绍了仿函数适配器,这节主要介绍容器适配器和迭代器适配器的概念,其实容器适配器和迭代器其适配器就是封装了一些其他class ...

  5. NodeJS 难点(网络,文件)的 核心 stream 四: writable

    什么是可写流 白板 可写流是对数据流向设备的抽象,用来 消费  上游流过来的数据 通过可写流程序可以把数据写入设备, 常见的是 本地磁盘文件或者 TCP.HTTP 等网络响应. 看一个之前用过的例子 ...

  6. apache的<directory> 语句以及属性的含义

    在整完apache和tomcat的之后我觉得有必要把<directory>和它下面的属性捋顺一下 如何访问根目录下的目录http://192.168.1.12/test/ 第一.缺省apa ...

  7. WKWebView中HTML5获取位置失败

    WKWebView中HTML5获取位置失败,在info.plist文件中添加以下代码打开网页时就会询问是否允许获取位置信息了. <key>NSLocationAlwaysUsageDesc ...

  8. PAT 天梯赛 是否完全二叉搜索树   (30分)(二叉搜索树 数组)

    将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果. 输入格式: 输入第一行给出一个不超过20的正整数 ...

  9. C语言与VT100控制码编程

    C语言与VT100控制码编程 声明: . 如果您打算阅读本文,希望您已经了解过C语言的基本语法,本文不对C语言的基本语法进行说明,因为那些东西几乎唾手可得; . 本文在vim中编辑,请尽量是用vim进 ...

  10. memcpy - how to copy float* to float* variable

    how to copy float* to float* float* seg_segmap = new float[OUTPUT_H * OUTPUT_W]; float* temp = new f ...