当前位置:C++技术网 > 资讯 > 完美记事项目:11 段落缩进专题详细说明

完美记事项目:11 段落缩进专题详细说明

更新时间:2015-06-26 19:41:52浏览次数:1+次

    在处理富文本框的段落格式时,缩进问题倒是遇到了一些问题和花了一些时间。下面整理一下,分享给大家。
    段落格式中的缩进是比较容易晕乎的东西。段落格式中,有以下这些缩进格式。
1.段落首行缩进。
    就是一段的第一行缩进一次。段落中其他行则不缩进。段落首行缩进是由段落格式结构体PARAFORMAT或者PARAFORMAT2中的dxStartIndent成员表示,LONG类型。使用段落首行缩进,需要设置段落结构体变量的成员dxStartIndent。在设置段落格式时,先将段落结构体变量设置好,然后调用富文本框控件类CRichEditCtrl成员函数SetParaFormat即可,段落其他格式也是这样设置。设置段落首行缩进的距离,以缇(Twips)为单位。段落首行缩进有绝对缩进和相对缩进两种模式。选择两种模式就是在段落格式结构体的掩码dwMask成员中设置就行了。
    绝对模式:设置PARAFORMAT或者PARAFORMAT2的dwMask成员为PFM_STARTINDENT。始终是相对于一行的最开始,而不管当前段落缩进到哪里,都会回到相对一行的最开始重新缩进。如果设置了居中对齐或者右对齐,且设置缩进的距离够不着居中对齐或者右对齐的第一个字符的位置,那么,设置是看不到效果的。连续多次设置,只有第一次生效。
    相对模式:设置PARAFORMAT或者PARAFORMAT2的dwMask成员为PFM_OFFSETINDENT。相对模式则是可以缩进任意次数,每次都相对于前一次的缩进进行缩进。如果缩进的距离是正数,则继续缩进,如果是负数,则往外凸出,也就是与缩进方向相反,朝段落左边凸出。

2.段落整体右缩进。
    由段落格式结构体PARAFORMAT或者PARAFORMAT2中的dxRightIndent成员表示,LONG类型。设置PARAFORMAT或者PARAFORMAT2的dwMask成员为PFM_RIGHTINDENT。这个是对整个段落来说的。也就是说,设置段落右缩进,那么整个段落的每一行都要向左缩进指定的距离。连续多次设置,只有第一次生效。当然,换了缩进的距离大小,再设置是可以重新设置的。

3.段落二级缩进。
    就是段落的第二行相对于第一行的缩进。也就是说,第二行在段落缩进的首行基础上再缩进指定的距离。但是一个段落只能设置一次。连续多次设置,只有第一次生效。由段落格式结构体PARAFORMAT或者PARAFORMAT2中的dxOffset成员表示,LONG类型。设置PARAFORMAT或者PARAFORMAT2的dwMask成员为PFM_OFFSET。

    到这里,已经很清楚了。之前差点迷糊了,我也是醉了。不过不能误导大家,所以我一再斟酌和调试代码,才整清楚这个逻辑。希望能帮到读者。如果有不准确之处,请指出 。