1

Win32リッチエディットコントロールEM_FORMATRANGEには、コントロールのコンテンツを任意のデバイスコンテキストにレンダリングできるというメッセージがあります。これは、印刷または印刷プレビューによく使用されますが、任意のデバイスコンテキストで使用できます。FORMATRANGEこのメッセージは、次のように定義されている、と呼ばれる構造を受け入れます。

typedef struct _formatrange {
  HDC       hdc;
  HDC       hdcTarget;
  RECT      rc;
  RECT      rcPage;
  CHARRANGE chrg;
} FORMATRANGE;

rcおよびの唯一のドキュメントrcPageは次のとおりです。

rc:レンダリングする領域。単位はtwipで測定されます。

rcPage:レンダリングデバイス上のページの全領域。単位はtwipで測定されます。

との値はrcrcPageを使用して取得できますGetDeviceCaps

rcPageとrcの違いが何であるかは私には完全にはわかりません。私がオンラインで見たコード例は、これらの両方を同じ長方形に設定しているようです。Microsoft独自の例リッチエディットコントロールのコンテンツを印刷する方法は完全に初期化に失敗しrcPage、実際には未定義のデータをリッチエディットコントロールに渡します。

rcPageリッチエディットコントロールでも使用されていますか?2番目の長方形がこのコマンドの動作に影響を与えるのに役立つ理由がわかりません。それでは、何のためにあるのでしょうか。との違いを説明する例を誰かが提供できますrcrcPage

4

1 に答える 1

0

リンク先の例では、実際には rcPage 部分をプリンターの最大寸法に設定しています。たとえば、ドキュメントが言っていることとまったく同じですが、rc はページの実際の印刷可能なセクションに設定されていますが、通常、プリンターは同じではありません物理的に印刷できないページの周囲の境界線。2 つある理由はおそらく、何かがページ上に絶対的に配置されているが、その一部を部分的にしかレンダリングしていないため、要素を適切にオフセットするためにその情報が必要な場合です。

于 2012-10-23T03:43:22.430 に答える