本文整理汇总了C++中StringStream::Put16方法的典型用法代码示例。如果您正苦于以下问题:C++ StringStream::Put16方法的具体用法?C++ StringStream::Put16怎么用?C++ StringStream::Put16使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringStream
的用法示例。
在下文中一共展示了StringStream::Put16方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Pack
String RichPara::Pack(const RichPara::Format& style, Array<RichObject>& obj) const
{
StringStream out;
dword pattr = 0;
if(format.align != style.align) pattr |= 1;
if(format.before != style.before) pattr |= 2;
if(format.lm != style.lm) pattr |= 4;
if(format.indent != style.indent) pattr |= 8;
if(format.rm != style.rm) pattr |= 0x10;
if(format.after != style.after) pattr |= 0x20;
if(format.bullet != style.bullet) pattr |= 0x40;
if(format.keep != style.keep) pattr |= 0x80;
if(format.newpage != style.newpage) pattr |= 0x100;
if(format.tabsize != style.tabsize) pattr |= 0x200;
if(!IsNull(format.label)) pattr |= 0x400;
if(format.keepnext != style.keepnext) pattr |= 0x800;
if(format.orphan != style.orphan) pattr |= 0x1000;
if(NumberingDiffers(format, style)) pattr |= 0x2000;
if(format.linespacing != style.linespacing) pattr |= 0x4000;
if(format.tab != style.tab) pattr |= 0x8000;
if(format.ruler != style.ruler) pattr |= 0x10000;
if(format.rulerink != style.rulerink) pattr |= 0x20000;
out.Put32(pattr);
if(pattr & 1) out.Put16(format.align);
if(pattr & 2) out.Put16(format.before);
if(pattr & 4) out.Put16(format.lm);
if(pattr & 8) out.Put16(format.indent);
if(pattr & 0x10) out.Put16(format.rm);
if(pattr & 0x20) out.Put16(format.after);
if(pattr & 0x40) out.Put16(format.bullet);
if(pattr & 0x80) out.Put(format.keep);
if(pattr & 0x100) out.Put(format.newpage);
if(pattr & 0x200) out.Put16(format.tabsize);
if(pattr & 0x400) { String t = format.label; out % t; }
if(pattr & 0x800) out.Put(format.keepnext);
if(pattr & 0x1000) out.Put(format.orphan);
if(pattr & 0x2000) {
String b = format.before_number, a = format.after_number;
out % b % a;
out.Put(format.reset_number);
out.Put(format.number, 8);
}
if(pattr & 0x4000)
out.Put(format.linespacing);
if(pattr & 0x8000) {
int c = 0;
int i;
for(i = 0; i < format.tab.GetCount(); i++) {
if(!IsNull(format.tab[i].pos))
c++;
}
out.Put16(c);
for(i = 0; i < format.tab.GetCount(); i++) {
const RichPara::Tab& w = format.tab[i];
if(!IsNull(w.pos)) {
out.Put32(w.pos);
out.Put(w.align);
out.Put(w.fillchar);
}
}
}
if(pattr & 0x10000)
out.Put16(format.ruler);
if(pattr & 0x20000) {
Color c = format.rulerink;
c.Serialize(out);
}
obj.Clear();
CharFormat cf = style;
if(part.GetCount())
PackParts(out, style, part, cf, obj);
else
Charformat(out, style, format, cf);
String r = out;
r.Shrink();
return r;
}