-1
誰かがこのコードを見ますか?ウィンドウのサイズを変更するときにSTATICコントロールを移動するための異なる式があります。私はChatRoomMessages
変数を持っていて、後でコードで作成されたハンドルを保持しています。 CreateWindow
の時刻にyの位置を保持する変数があるので、同じ位置でそれらをトラバースします。 ChatRoomMessages[i]
とy[i]
(RECT
のy位置)を取得し、サイズ変更時にウィンドウを移動する必要があります。あなたが望むなら、電子メールをアップロードすることができます。これがサイトに適切でない場合は、私の悪いアルゴリズムを削除してください。偉大なソリューションを提案できれば。WM_SIZEとMoveWindow
HWND ChatRoomMessages[100];
int y[100];
case WM_SIZING:
{
GetClientRect(hWnd, &sizingRect);
}
case WM_SIZE:
{
signed int y1;
RECT sizingRect2;
GetClientRect(hWnd, &sizingRect2);
if ((sizingRect2.bottom - sizingRect.bottom) > 0) {
for (int x1 = 0; x1 < 100; x1++)
{
//MessageBox(hWnd2, L"WM_SIZE Called", L"Message", MB_OK | MB_ICONQUESTION);
y[x1] -= (sizingRect2.bottom - sizingRect.bottom) - (j*100);
MoveWindow((HWND)ChatRoomMessages[x1], 0, y[x1], sizingRect2.right - 50, 100, TRUE);
}
}
else {
}
を使用します。とにかく、ありがとう。 –
休憩を追加しましたか? 'case WM_SIZING:... break;' –
私はWM_SIZINGがウィンドウのサイズ変更にぴったりだったと思っていましたが、WM_SIZEの終わりまでクライアントを取得するために何か別のものでなければなりません。プログラムが始まりました。その時点ですべての機能を呼び出しました.2回目に処理したとき、どのように簡単に機能するのが理想的でした。私はとても混乱していたので、あなたの答えをありがとう。私は休憩を忘れたことに気付かなかった。 –