wxWidgets:给窗口添加工具条
请先看上一篇《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:给窗口添加工具条的更多相关文章
- QT中添加工具条QToolBar
项目用的QT5.3,设计师中没有直接拖工具条的控件,那要怎么加工具条呢? 其实.ui文件是xml类型的文本文件,用uedit或记事本打开,找到之前有的工具条段落,复制粘贴一个,保存,再在vs中用设计师 ...
- 在对话框中利用CToolBar类添加工具条的方法
UINT BASED_CODE DockTool[]={ID_NEWGAME,ID_SAVE,ID_OPEN,ID_SEPARATOR,ID_COPYFEN,ID_PASTEFEN,ID_SEPARA ...
- IOS开发 键盘添加工具条 退出 上一项 下一项 简单实现
首先设置每个 UITextField 的 inputAccessoryView 为UIToolBar : 将所有的 textField 放入一个数组: 设置 UITextField UITextFie ...
- AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件
AJ分享,必须精品 一:效果 二:封装好的工具条 NYComposeToolbar.h 带代理方法 #import <UIKit/UIKit.h> typedef enum { NYCom ...
- 如何往IE工具条添加按钮(转载)
如何往IE工具条添加按钮 问题提出:金山词霸.网络蚂蚁等软件安装后会向IE的工具条添加自己的按钮.按下按钮后还会作出相应的动作,这种功能是如何实现的呢?读完本文,您也可以将自己应用程序的按钮添加到IE ...
- Qt__主窗口、菜单和工具条(QMainWindow,QMenu,QToolBar)
转自豆子空间 主窗口 Qt的GUI程序有一个常用的顶层窗口,叫做MainWindow.MainWindow继承自QMainWindow.QMainWindow窗口分成几个主要的区域: 最上面是Wind ...
- 雷林鹏分享:jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框
jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框 您可以创建一个带有工具栏(toolbar)和按钮(button)的对话框(dialog),可以从 HTML 标记创建.这个教程描述 ...
- 百度地图API示例之添加/删除工具条、比例尺控件
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- DHTMLX 前端框架 建立你的一个应用程序教程(四)--添加一个工具条toolbar
工具条例子 样本如下: 这里我们使用的是dhtmlxToolbar 组件. 添加工具栏到布局中: 1.使用attachToolbar() 方法初始化页面 添加代码到index.html中 dhtmlx ...
随机推荐
- 当前标识没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限。
解决方案: PHP程序如果遇到这个问题,请将应用程序池.NET改成无托管代码
- (C#基础)各种加密学习
之前,一直想对这个做一个了解,但是总是坚持不下去,很急躁.最近看了几遍文章,很有感触,于是又来重新开始学习,从最最基础的开始——正所谓“慢就是快”.心态变了,继续吧!上代码! using System ...
- 快速切题 sgu104. Little shop of flowers DP 难度:0
104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB PROBLEM Yo ...
- java关于null的介绍及比较问题..未完待续
非对象比较内容,用== 对象比较内容,用相应的方法比如equais. demo1
- UML(统一的建模语言)
1.软件开发与软件工程 任何事情都必须想清楚了,才能去做!这样才不会出现很多不必要的麻烦,软件开发亦是如此. 写代码前要想好:想要做什么?做成什么样?如何去做? 软件设计就是把软件开发想清楚的过程: ...
- hibernate缓存清除(转)
文章有点杂,这不是原文,谢谢贡献者 http://www.360doc.com/content/16/0413/16/32415095_550307388.shtml 一.hibernate一级缓存( ...
- 移动端 解决自适应 和 多种dpr (device pixel ratio) 的 [淘宝] 解决方案 lib-flexible
其实H5适配的方案有很多种,网上有关于这方面的教程也非常的多. 不管哪种方法,都有其自己的优势和劣势. 为什么推荐使用Flexible库来做H5页面的终端设备适配呢? 原理 简单易懂 源码疑问 ...
- mysql 删除表中记录
一.清除mysql表中数据 delete from 表名;truncate table 表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以 ...
- Android开发入门要点记录:四大组件
cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...
- SIM800C Couldn't pair with xxx because of an incorrect PIN or passkey
/******************************************************************************* * SIM800C Couldn't ...