none
モニタ毎の高DPI対応のMDI形式プログラムで子ウィンドウ最大化でNG

    質問

  • MDI形式、モニタ毎の高DPI対応のプログラムを作成しています。
    メインウィンドウを作成する前に
    SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
    を呼び出しています。
    メインディスプレイが100%スケール、サブディスプレイが200%スケールとし、
    MDIの子ウィンドウを最大化した状態でメインディスプレイからサブディスプレイに移動すると
    子ウィンドウ上部に子ウィンドウのタイトルバーが半分程度表示されてしまいます。

    ツールバーを持たない、ごく単純なプログラムでも発生します。

    SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)
    ではなく
    SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE)
    なら大丈夫なのですが、これだとダイアログなどがモニタ毎の高DPI対応にならないので、
    引数はDPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2で行いたいです。

    他に何かする必要があるのでしょうか?

    2017年5月11日 0:10