单选框组(Checkbox Group)
单选框组是多个单选框的集合,HiEasyX 中有两种单选框组:CheckboxGroupSingle
和 CheckboxGroup
。前者多个单选框中只允许一个选中,后者不做限制。
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;
}