wxWidgets学习笔记五(+_+都是从笔记上复制下来的,图片都没贴上来,排版也有些乱,见谅,见谅)

2010-7-21

51. wxBoxSizer可以将它的容器子元素进行横向或者纵向的排列(具体的排列方式在构造函数中指定).如果采用横向排列的方法,则子元素在纵向上可以指定居中,顶部对齐,底部对齐,如果采用纵向排列的方法,子元素在横向上可以指定居中,左对齐或者右对齐的方式.前一小节提到过的缩放因子用来指示在主要方向上的缩放,比如对于横向排列来说,缩放因子指的就是在横向上子元素的缩放比例. 下图演示了上一小节最后一幅图采用纵向排列的样子.

52.可以采用wxBoxSizerAdd方法增加子元素

53. // 增加一个窗口

void Add(wxWindow* window, int stretch = 0, int flags = 0,

         int border = 0);

// 增加一个布局控件

void Add(wxSizer* window, int stretch = 0, int flags = 0,

         int border = 0);

54. 第一个参数是要增加的窗口或者布局控件的指针

第二个参数是前面说过的缩放因子

第三个参数是一个比特位列表,用来指示新增的子元素的对齐和边界的行为

第四个参数指定边界间隔的大小

55. 当然你也可以直接增加一段空白,下面演示了增加空白区域的几种方法:

// 增加一段空白 (旧方法)

void Add(int width, int height, int stretch = 0, int flags = 0,

         int border = 0);

// 增加一段固定大小的空白

void AddSpacer(int size);

// 增加一个可缩放的空白

void AddStretchSpacer(int stretch = 1);

56.下面是一个关于布局的例子:

MyFrame1::MyFrame1(const wxString& title, const wxPoint& point, const wxSize& size) : wxFrame( NULL, wxID_ANY, title, point, size)

{

    this->SetSizeHints( wxDefaultSize, wxDefaultSize );//是的窗口大小不小于初始的大小

    SetIcon(wxIcon(mondrian_xpm));

 

    wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL);

    //创建一个大小为*60的多行文本框

    topSizer->Add(new wxTextCtrl(this,wxID_ANY, "MyText.", wxDefaultPosition, wxSize(400,300), wxTE_MULTILINE),

       1,         //垂直方向可缩放,缩放因子为

       wxEXPAND|  //水平方向可缩放

       wxALL,     //四周都是空白边框

       10);       //空白边框大小为

    wxBoxSizer *buttonSizer = new wxBoxSizer(wxHORIZONTAL);

    buttonSizer->Add(

       new wxButton(this, wxID_OK, "OK"),//添加一个按钮

       0,         //水平方向不可缩放

       wxALL,     //四周有空白边框,空白边框大小为

       10);

    buttonSizer->Add(

       new wxButton( this, wxID_CANCEL, "Cancel" ),

       0,         // 水平方向不可缩放

       wxALL,     // 四周有空白边框:(注意默认为顶部对齐)

       10 );      // 空白边框大小为

    topSizer->Add(

       buttonSizer,

       0,                // 垂直方向不可缩放

       wxALIGN_CENTER ); // 无边框并且居中对齐

       SetSizer( topSizer ); // 绑定对话框和布局控件

       topSizer->Fit( this );          // 调用对话框大小

       topSizer->SetSizeHints( this ); // 设置对话框最小大小

}

57. 要创建一个这种对话框,你需要提供父窗口指针,要显示的消息,可选的标题,类型和位置参数,然后调用ShowModal函数显示这个对话框,然后判断这个函数的返回值进行进一步的动作.

58. 窗口标识符是在事件系统中用来唯一确定窗口的整数。事实上,在整个应用程序的范围内,窗口标识符不必一定是唯一的,而只要在某个固定的上下文(比如说,在一个frame窗口和它的所有子窗口)内是唯一的就可以了。举例来说:你可以在无数个对话框中使用wxID_OK这个标识符,只要在某个对话框内不要重复使用就可以了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值