C++ mfc richedit2格式
我正在尝试使用富编辑控件在屏幕上输出一些文本: 周一按1。C++ mfc richedit2格式,c++,mfc,formatting,richedit-control,C++,Mfc,Formatting,Richedit Control,我正在尝试使用富编辑控件在屏幕上输出一些文本: 周一按1。 你的一天是星期一 周二按2 我真的找不到任何简单的例子来说明如何做到这一点。我所能做的就是设置窗口文本(setWindowText),但其他一切都让我不知所措。 有简短的例子吗?使用写字板,它也是一个RichEdit控件。它将以与控件自然兼容的方式生成RTF。使用写字板,它也是一个RichEdit控件。它将以一种与控件自然兼容的方式生成RTF。尽管有这些评论,我还是要回答您提出的关于如何在富编辑控件中格式化数据的问题。几年前,我不得不这
你的一天是星期一 周二按2 我真的找不到任何简单的例子来说明如何做到这一点。我所能做的就是设置窗口文本(setWindowText),但其他一切都让我不知所措。
有简短的例子吗?使用写字板,它也是一个RichEdit控件。它将以与控件自然兼容的方式生成RTF。使用写字板,它也是一个RichEdit控件。它将以一种与控件自然兼容的方式生成RTF。尽管有这些评论,我还是要回答您提出的关于如何在富编辑控件中格式化数据的问题。几年前,我不得不这样做,并且想出了一些我可以像IOstream一样对待的东西(如果我今天这样做,我可能会做得有点不同,但这就是生活) 首先,编写代码,使其像IOstream一样工作,但写入丰富的编辑控件:
// rich_stream.h:
#ifndef RICH_STREAM_H
#define RICH_STREAM_H
class rich_stream {
CRichEditCtrl &ctrl;
public:
rich_stream(CRichEditCtrl &ctrl_) : ctrl(ctrl_) { }
void add_text(char const *txt) {
ctrl.SetSel(-1,-1);
ctrl.ReplaceSel(txt);
}
void add_int(int val) {
CString temp;
temp.Format("%d", val);
add_text(temp);
}
void set_char_format(CHARFORMAT &fmt) {
ctrl.SetSelectionCharFormat(fmt);
}
};
inline rich_stream &operator<<(rich_stream &s, char const *t) {
s.add_text(t);
return s;
}
inline rich_stream &operator<<(rich_stream &s, CHARFORMAT &fmt) {
s.set_char_format(fmt);
return s;
}
inline CString nl() {
return CString("\n\n");
}
inline rich_stream &operator<<(rich_stream &s, CString (*f)()) {
s.add_text(f());
return s;
}
inline rich_stream &operator<<(rich_stream &s, int val) {
s.add_int(val);
return s;
}
#endif
//rich\u stream.h:
#ifndef富水溪流
#定义富流
类富_流{
CRichEditCtrl&ctrl;
公众:
富流(CRICHEDITCRL&ctrl):ctrl(ctrl){
无效添加文本(字符常量*txt){
控制设定值(-1,-1);
ctrl.ReplaceSel(txt);
}
void add_int(int val){
CString温度;
临时格式(“%d”,val);
添加文本(临时);
}
无效集字符格式(字符格式和fmt){
ctrl.SetSelectionCharFormat(fmt);
}
};
inline rich_stream&operator尽管有这些评论,我还是要回答您提出的问题,关于如何在rich Edit控件中格式化数据。几年前,我不得不这样做,并且想出了一些我可以像IOstream一样对待的东西(如果我今天这样做,我可能会做得有点不同,但这就是生活)
首先,编写代码,使其像IOstream一样工作,但写入丰富的编辑控件:
// rich_stream.h:
#ifndef RICH_STREAM_H
#define RICH_STREAM_H
class rich_stream {
CRichEditCtrl &ctrl;
public:
rich_stream(CRichEditCtrl &ctrl_) : ctrl(ctrl_) { }
void add_text(char const *txt) {
ctrl.SetSel(-1,-1);
ctrl.ReplaceSel(txt);
}
void add_int(int val) {
CString temp;
temp.Format("%d", val);
add_text(temp);
}
void set_char_format(CHARFORMAT &fmt) {
ctrl.SetSelectionCharFormat(fmt);
}
};
inline rich_stream &operator<<(rich_stream &s, char const *t) {
s.add_text(t);
return s;
}
inline rich_stream &operator<<(rich_stream &s, CHARFORMAT &fmt) {
s.set_char_format(fmt);
return s;
}
inline CString nl() {
return CString("\n\n");
}
inline rich_stream &operator<<(rich_stream &s, CString (*f)()) {
s.add_text(f());
return s;
}
inline rich_stream &operator<<(rich_stream &s, int val) {
s.add_int(val);
return s;
}
#endif
//rich\u stream.h:
#ifndef富水溪流
#定义富流
类富_流{
CRichEditCtrl&ctrl;
公众:
富流(CRICHEDITCRL&ctrl):ctrl(ctrl){
无效添加文本(字符常量*txt){
控制设定值(-1,-1);
ctrl.ReplaceSel(txt);
}
void add_int(int val){
CString温度;
临时格式(“%d”,val);
添加文本(临时);
}
无效集字符格式(字符格式和fmt){
ctrl.SetSelectionCharFormat(fmt);
}
};
inline rich_stream&Operator您是否尝试过在RTF中设置窗口文本?我尝试过通过word将预期输出转换为RTF。输出过多,以至于我无法使用它。理想情况下,我希望使用html格式在对话框上显示数据。可能吗?RichEdit不做HTML格式。使用诸如IWebBrowser
(Trident/IE)之类的HTML控件进行此操作。@Jason:是的。摆脱richedit控件。将HTML放入一个文件中。在对话框中插入“Microsoft Web浏览器”控件(并将变量附加到该控件)。调用您的浏览器控件。导航(“file://your_html_file.html");代码>您是否尝试过在RTF中设置窗口文本?我尝试过通过word将预期输出转换为RTF。输出过多,以至于我无法使用它。理想情况下,我希望使用html格式在对话框上显示数据。可能吗?RichEdit不做HTML格式。使用诸如IWebBrowser
(Trident/IE)之类的HTML控件进行此操作。@Jason:是的。摆脱richedit控件。将HTML放入一个文件中。在对话框中插入“Microsoft Web浏览器”控件(并将变量附加到该控件)。调用您的浏览器控件。导航(“file://your_html_file.html");谢谢你,杰瑞。这就是我要找的。谢谢你,杰瑞。这就是我要找的。