私はその中に子ウィンドウがあるウィンドウを持っています。子ウィンドウは約1000ピクセルの垂直スペースを占有します。しかし、私たちのユーザーは、利用可能な垂直空間が常に1000ピクセルであるとは限りません。win32でウィンドウのビューポートを変更するにはどうすればよいですか?
このウィンドウを高さ500ピクセルのサイズで表示し、ウィンドウの上下にスクロールして内容全体を表示させたいと考えています。ウィンドウのサイズは常に500ピクセルにする必要がありますが、ウィンドウ内のビューは変更する必要があります。
どこかにスクロールバーを追加できるので、ユーザーはウィンドウのどの部分を見たいのかを選択できます。 Windowsは通常、ウィンドウの内容を高さ0から高さ500にペイントします。代わりに「高さ250から高さ750にペイントする」と言ってもいいでしょうか?
SetViewportOrgEx
などの機能を持つビューポートを設定できることは知っていますが、これらの機能にはデバイスコンテキストが必要です - いつそれらを永続化したいのですか?ウィンドウからWM_PAINTメッセージを受け取ったときに呼びますか?または他の時間に?その家族のどの機能が使いたいのですか?
編集する追加:私は実際に子ウィンドウの位置を変更する必要はありません - 同じ位置に留まる必要があり、変更する必要があるのはウィンドウへの表示だけです。
ありがとうございました。
子ウィンドウの位置を実際に変更する必要はありません。同じ位置に留まる必要があり、変更する必要があるのはウィンドウへの表示だけです。 – Colen
これは結局一緒に行かなければならないものです。ありがとう! – Colen
ええと...私が言うことができる限り、ビューポートの変更は通常、子ウィンドウが描画される場所は変更されません。少なくとも、ウィンドウプロシージャ内で変更すると演奏するDC。ビューポートはペイントされたものの位置を決定しますが、子ウィンドウはそれとは独立しているようです。 – cHao