1

CreateWindowEx()を使用して2つのウィンドウを作成しましたが、一方を移動するたびにもう一方が他方に対して移動するように、それらを並べて貼り付けたいと思います。

これを実装する正しい方法は何ですか?

現在、私は次のコードを使用しています。

case WM_MOVING: // When the main window is being moved
    GetWindowRect(hWnd, &rWnd); // Get the current position of the main window
    MoveWindow(hwStats, rWnd.right - 1, rWnd.top, 140, 450, 1); // Move the other window relative to the main window
    return 1; // WM_MOVING is handled by the application
    break; // Done.

これに伴う問題は、ウィンドウを移動するたびに、もう一方のウィンドウが数ピクセル後ろにドラッグされることです。さて、それほど
悪く はありませんが、もう少ししっかりしているように見えたら本当にいいと思います。

4

1 に答える 1

1

この問題を修正するには、caseから、、および関数WM_MOVINGを変更する必要がありました。WM_MOVEMoveWindow() to SetWindowPos()

「WindowsAPIドッキング」について教えてくれたMartinJamesに感謝します。それはとても役に立ちました。

于 2013-01-27T13:53:18.230 に答える