Win32 Rich Edit 控件有一个名为的消息EM_FORMATRANGE
,它可以将控件的内容呈现给任意设备上下文。这通常用于打印或打印预览,但可以用于任何设备上下文。该消息接受一个名为 的结构FORMATRANGE
,其定义如下:
typedef struct _formatrange {
HDC hdc;
HDC hdcTarget;
RECT rc;
RECT rcPage;
CHARRANGE chrg;
} FORMATRANGE;
rc
和的唯一文档rcPage
如下:
rc
:要渲染到的区域。单位以缇为单位。
rcPage
:渲染设备上页面的整个区域。单位以缇为单位。
rc
和的值rcPage
可以通过使用 获得GetDeviceCaps
。
我并不完全清楚 rcPage 和 rc 之间的区别是什么。我在网上看到的代码示例似乎将这两个设置为同一个矩形。Microsoft 自己的示例How to Print the Contents of Rich Edit Controls完全无法初始化rcPage
,实际上将未定义的数据传递给 Rich Edit 控件。
甚至被rcPage
富编辑控件使用?我不明白为什么第二个矩形可能对影响这个命令的行为有用,那么它有什么用呢?rc
有人可以提供一个例子来说明和之间的区别rcPage
吗?