我有一些代码:
#include "Communicate.h"
Communicate::Communicate(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(290, 150))
{
m_parent = new wxPanel(this, wxID_ANY);
wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL);
m_lp = new LeftPanel(m_parent);
m_rp = new RightPanel(m_parent);
hbox->Add(m_lp, 1, wxEXPAND | wxALL, 5);
hbox->Add(m_rp, 1, wxEXPAND | wxALL, 5);
m_parent->SetSizer(hbox);
this->Centre();
}
本教程中的: http://zetcode.com/gui/wxwidgets/ - 首批应用
什么是运营商|意味着:
hbox->Add(m_lp, 1, wxEXPAND | wxALL, 5);
hbox->Add(m_rp, 1, wxEXPAND | wxALL, 5);
答案 0 :(得分:6)
|
是一个按位OR。
库通常定义不同的掩码,例如wxEXPAND
和wxALL
,它们通常是整数常量,只设置一个位。
当你使用bitwise-or运算符时,你可以将它们结合起来创建所谓的位域,这是一个带有你定义的位的整数集。
你将这些结合起来:
wxEXPAND | wxALL
将创建一个位域,其中包含来自wxEXPAND和wxALL的位。
通常,库会检查这些位是否设置如下:
if (bitfield & wxEXPAND) { .. // wxEXPAND is set
这是一个按位AND。当且仅当在wxEXPAND
中设置了bitfield
位时,测试才会返回。
库使用它来允许您在单个寄存器中传递多个选项,例如。