博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wxWidgets 使用总结
阅读量:3613 次
发布时间:2019-05-21

本文共 3008 字,大约阅读时间需要 10 分钟。

//---------------------------------------------------

设置vc的include lib

include:D:\Trunk\External\wxWidgets-2.9.0\include       D:\Trunk\External\wxWidgets-2.9.0\lib\vc_lib\mswu

lib:D:\Trunk\External\wxWidgets-2.9.0\lib\vc_lib

//---------------------------------------------------

最大化

必须在Frame create的时候给style一个 wxMAXIMIZE | wxMAXIMIZE_BOX .
表示,窗口可以最大化显示,有一个最大化按钮.
调用函数
Maximize( true ); 来最大化窗口

//-----------------------------------------------------

窗口大小
必须注意,要在 Show( 1 ) 之后才能获得窗口大小
不要使用 GetClientSize() 之类的函数.
首先使用 GetSize() 获得应用程序的大小,
使用 WindowToClientSize() 便可获得client实际大小

//-----------------------------------------------------

DC使用
wxClientDx( wxWindow *win );
随后就可以使用dc的成员函数进行绘图了.

//-----------------------------------------------------

分割窗口
#inlcude "wx/splitter.h"
首先创建具有分割功能的窗口 wxSplitterWindow ,算是一个中间容器,注意其父窗口。
使用 SplitVertically( left, right, nWidth ) 对其进行左右分割。
右边panel的宽度(如果不想双击隐藏右侧窗口),则需要设置pane大小 SetMinimumPaneSize( nSize )
这个窗口只能分割成两个,若需再次分割,要在 wxSplitterWindow 内继续创建 wxSplitterWindow

//------------------------------------------------------

菜单
分为两部分:菜单项 wxMenu 、菜单栏 wxMenuBar 。
创建菜单栏、创建菜单项,将菜单栏通过 wxFrame 的 SetMenuBar() 加载在窗口内。
Append() 至菜单栏的菜单项,点击后产生下拉菜单。通过调用自己的 Append() 添加下拉菜单的菜单项。

//------------------------------------------------------

标签页
需要一个标签容器 wxNotebook ,通过 AddPage() 向标签页内添加标签。

//------------------------------------------------------

按钮
wxButton 注意父窗口
位图按钮
wxBitmap 指针,调用 LoadFile() 加载相应的文件。若资源是png。则需要添加
wxImage::AddHandler( new wxPNGHandler );
wxBitmap 创建按钮

//------------------------------------------------------

组框
#include "wx/combobox.h"
创建 wxComboBox 对象,style 赋值为 wxCB_READONLY ,则为只能选择而不能输入。
删除某项 调用成员函数 Delete( n ); n为选项的下标值
增加新项 调用成员函数 Insert( str, n ); str 为添加的字符串,n为选项下标。

//-------------------------------------------------------

单选框
创建 wxRadioBox 对象,第3个参数为标题名。
参数6 选框数量
参数7 选框字符串数组名 wxString str[];
参数8 每行几个

//--------------------------------------------------------

复选框
创建 wxCheckBox 对象,第3个参数为选项内容。

//--------------------------------------------------------

旋转控件
#include "wx/spinctrl.h"
整数变化,创建 wxSpinCtrl 对象,
参数 7,8,9 分别为 最小值,最大值,每次的差值。
小数变化创建 wxSpinCtrlDouble
参数8 如果第3个参数为空,则以此数字为开始计数。
参数9 每次差值

//---------------------------------------------------------

滑块
创建 wxSlider 对象,
参数3 默认值
参数4 最小值
参数5 最大值
style wxSL_LABELS 显示数字 wxSL_TOP 滑块的方向

//---------------------------------------------------------

消息
消息响应函数 Function 的形参一定要注意,普通的是 wxCommandEvent 引用
如果是splitter窗口则要 wxSplitterEvent
在wxFrame子类定义中加入宏
DECLARE_EVENT_TABLE()
在类外定义 event table
BEGIN_EVENT_TABLE( xxxx, wxFrame )
 EVT_XXXXX( ID, Function )
END_EVENT_TABLE()
EVT_XXXX 可在 wx/event.h 内找到相应定义。

 

1、如何在启动窗口时让其最大化?

     在主框架创建时加入wxMAXIMIZE样式,如下:

    Create(parent, id, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE | wxMAXIMIZE, _T("id"));

2、如何往wxNoteBook中的页面添加控件?

     在用函数AddPage增加页面时直接指定控件指针即可,如下:

     wxNotebook *myNotebook = new wxNotebook( this, -1, wxDefaultPosition, wxSize(500, 500), wxNB_BOTTOM);

     wxTextCtrl* notetext = new wxTextCtrl(myNotebook, -1);
     myNotebook->AddPage( notetext, wxT("我的输入窗口") );

 

转载地址:http://drukn.baihongyu.com/

你可能感兴趣的文章
gets函数
查看>>
查找句子中单词数,串
查看>>
局部变量存储类别
查看>>
Ubuntu18安装vim
查看>>
第39级台阶 c++
查看>>
C#如何统计出文本框中字母、空格、数字及其他字符的个数
查看>>
command 'x86_64-linux-gnu-gcc' failed with exit status 1
查看>>
django部署踩坑
查看>>
对io.UnsupportedOperation: fileno错误的解决办法
查看>>
pandas报错:A value is trying to be set on a copy of a slice from a DataFrame. Try using....
查看>>
df.to_csv中文乱码
查看>>
python中pandas检索某一个具体值(具体到一个元素)
查看>>
pandas选取指定列
查看>>
pandas打开csv和excel
查看>>
pandas中dataframe类型操作方法大全
查看>>
pandas删除指定列中有空值的行
查看>>
pandas中字符串替换
查看>>
车辆转弯角度算法,代码
查看>>
python实现灰度图像转换
查看>>
python实现手绘效果
查看>>