1

内部に子ウィンドウがあるウィンドウがあります。子ウィンドウは、約 1000 ピクセルの垂直方向のスペースを占有します。ただし、ユーザーは常に 1000 ピクセルの垂直方向のスペースを利用できるとは限りません。500 ピクセルまたは 600 ピクセルしかない場合があります。

このウィンドウを高さ 500 ピクセルのサイズで表示し、ユーザーがウィンドウを上下に「スクロール」してコンテンツ全体を表示できるようにしたいと考えています。ウィンドウの高さは常に 500 ピクセルにする必要がありますが、ウィンドウ内のビューは変更する必要があります。

ユーザーがウィンドウのどの部分を見たいかを選択できるように、どこかにスクロールバーを追加できるとします。Windows は通常、ウィンドウの内容を高さ 0 から高さ 500 まで描画します。たとえば、代わりに「高さ 250 から高さ 750 までペイントする」ように指示するにはどうすればよいですか?

などの関数でビューポートを設定できることは知っていますSetViewportOrgExが、それらの関数にはデバイス コンテキストが必要です。Windows から WM_PAINT メッセージを受け取ったときにそれらを呼び出す必要がありますか? それとも別の時に?そして、そのファミリのどの機能を使用したいですか?

編集して追加:子ウィンドウの位置を実際に変更したくありません。子ウィンドウは同じ位置にとどまる必要があり、変更する必要があるのはウィンドウへのビューだけです。

ありがとう。

4

1 に答える 1

1

(スクロールバーの変更に関するメッセージを受け取ったときに)SW_SCROLLCHILDRENフラグを指定してScrollWindowExを呼び出す場合は、子ウィンドウに他のすべてと一緒にスクロールするように指示する必要があります。これは彼らを正しい位置に置くべきです。

于 2011-01-11T02:19:35.693 に答える