Iterate Over Struct; Easily Display Struct Fields And Values In a RichEdit Box(迭代结构;在 RichEdit 框中轻松显示结构字段和值)
问题描述
是否有更简单的方法来显示 RichEdit
控件中的 struct
字段及其对应的值?
Is there an easier way to display the struct
fields and their corresponding values in RichEdit
control?
这就是我现在正在做的:
This is what I am doing now:
AnsiString s;
s = IntToStr(wfc.fontColor);
RichEdit1->Lines->Append(s);
等等...
有没有比单独呼叫每个人更简单的方法?我想读取一个二进制文件,然后在 RichEdit
控件中为我正在构建的一个小实用程序显示相应的结构,但没有找到其他方法.我已经知道如何读取二进制文件并将值读入 struct
.
Is there an easier way than having to individually call each one? I want to read a binary file and then display the corresponding structure in a RichEdit
control for a small utility I am building and have found no other way. I know how to read binary files and read the values into the struct
already.
推荐答案
BOOST_FUSION_ADAPT_STRUCT
似乎很适合这里.例如:
BOOST_FUSION_ADAPT_STRUCT
seems to fit well here. For example:
// Your existing struct
struct Foo
{
int i;
bool j;
char k[100];
};
// Generate an adapter allowing to view "Foo" as a Boost.Fusion sequence
BOOST_FUSION_ADAPT_STRUCT(
Foo,
(int, i)
(bool, j)
(char, k[100])
)
// The action we will call on each member of Foo
struct AppendToTextBox
{
AppendToTextBox(RichEditControl& Ctrl) : m_Ctrl(Ctrl){}
template<typename T>
void operator()(T& t)const
{
m_Ctrl.Lines.Append(boost::lexical_cast<std::string>(t));
}
RichEditControl& m_Ctrl;
};
// Usage:
void FillTextBox(Foo& F, RichEditControl& Ctrl)
{
boost::fusion::for_each(F, AppendToTextBox(Ctrl));
}
这篇关于迭代结构;在 RichEdit 框中轻松显示结构字段和值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:迭代结构;在 RichEdit 框中轻松显示结构字段和值
基础教程推荐
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 使用从字符串中提取的参数调用函数 2022-01-01
- 从 std::cin 读取密码 2021-01-01