跳到主要内容

单选框组(Checkbox Group)

单选框组是多个单选框的集合,HiEasyX 中有两种单选框组:CheckboxGroupSingleCheckboxGroup。前者多个单选框中只允许一个选中,后者不做限制。

CheckboxGroupSingle

在 HiEasyX 中,CheckboxGroupSingle 的原型函数定义如下:

void CheckboxGroupSingle(const HXString &Title, CheckboxGroupProfile &Profile, bool SameLine = false);

参数

参数含义默认取值
Title单选框组的标题,展示在所有单选框上方的文字
Profile单选框组的资料结构体
SameLine是否将所有单选框归为一行,如果为 true 则把所有单选框归为一行,否则垂直排布。false

CheckboxGroup

在 HiEasyX 中,CheckboxGroup 的原型函数定义如下:

void CheckboxGroup(const HXString &Title, CheckboxGroupProfile &Profile, bool SameLine = false);

参数

参数含义默认取值
Title单选框组的标题,展示在所有单选框上方的文字
Profile单选框组的资料结构体
SameLine是否将所有单选框归为一行,如果为 true 则把所有单选框归为一行,否则垂直排布false

资料结构体

单选框组的资料结构体定义如下:

struct CheckboxGroupProfile {
std::map<HXString, CheckboxProfile> MappingStatus;
};
变量含义默认取值
MappingStatus多个单选框资料结构体的映射集合,第一个 HXString 为该单选框的标题,第二个 CheckboxProfile 为该单选框的资料结构体

示例

该示例代码同样可以在代码仓库/example/EasyX/CheckboxGroup.cpp 中找到。

#include <include/hex.h>
#include <include/impl/EasyX/hex_impl_easyx.h>

int main() {
initgraph(640, 480);

BeginBatchDraw();

HX::HXInitForEasyX();
HX::SetBuffer(GetWorkingImage());

setbkcolor(RGB(180, 180, 180));

HX::WindowProfile windowProfile;
windowProfile.Size = { 600, 400 };

while (true) {
cleardevice();

HX::HXBegin();

ExMessage message{};
while (peekmessage(&message)) {
HX::PushMessage(HX::GetHXMessage(&message));
}

HX::Window(HXStr("单选框组控件示例"), windowProfile);

{
static HX::CheckboxGroupProfile profile;
profile.MappingStatus.insert({HXStr("单选框 1"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 2"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 3"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 4"), HX::CheckboxProfile{}}),
HX::CheckboxGroupSingle(HXStr("单选框组,但是你只被允许选一个,而且单选框同列"), profile, true);
}
{
static HX::CheckboxGroupProfile profile;
profile.MappingStatus.insert({HXStr("单选框 1"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 2"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 3"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 4"), HX::CheckboxProfile{}}),
HX::CheckboxGroupSingle(HXStr("单选框组,但是你只被允许选一个,而且单选框不同列"), profile, false);
}
{
static HX::CheckboxGroupProfile profile;
profile.MappingStatus.insert({HXStr("单选框 1"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 2"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 3"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 4"), HX::CheckboxProfile{}}),
HX::CheckboxGroup(HXStr("单选框组,但是你被允许选多个,而且单选框同列"), profile, true);
}
{
static HX::CheckboxGroupProfile profile;
profile.MappingStatus.insert({HXStr("单选框 1"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 2"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 3"), HX::CheckboxProfile{}}),
profile.MappingStatus.insert({HXStr("单选框 4"), HX::CheckboxProfile{}}),
HX::CheckboxGroup(HXStr("单选框组,但是你被允许选多个,而且单选框不同列"), profile, false);
}

HX::End();
HX::Render();

FlushBatchDraw();

Sleep(1);
}

return 0;
}