本文共 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/