0

コントロールのサイズと位置は、ウィンドウ (dwm) によって変更されます。これを相殺するために、x と y の正確なスケーリングを取得する方法が必要です。

.exe (3ds Max)へのプラグインを作成しているため、マニフェストを使用できません。3dsMax のマニフェストを変更できません (私はオートデスクではありません。setprocessdpiawareness()別のプラグイン (dll)exeであり、親プロセスのレイアウトを強制終了するため、 を呼び出すことはできません。

このソリューションは Windows 7、8、10 で動作するはずです。そのため、10 または 8.1 で導入された呼び出しは使用できません。

私はすでに試しました:

LogicalToPhysicalPoint(0,& p1);

PhysicalToLogicalPoint(0, &p2);

これは何も変更しません (ポイントは変更されません)。私は古い学校の C++ と一般的なコントロール (サブクラス化) を使用しています。親exeで実行されないため、WPFを使用できないため、WPFはありません。

HWND hw = CreateWindowEx(0, L"STATIC", L"thumbnails",
        WS_CHILD | WS_VISIBLE | SS_WHITEFRAME | SS_BITMAP ,
        9*2, 64*2, 90*2, 46*2,  hParentDialog, 0, 0, 0);

コントロールのサイズと位置に魔法の「2 *」を追加した後、必要な場所に配置します。しかし、これは現在のモニターを備えた現在のマシンでのみ機能するハックです。

「2」を dwm が適用する乗数に置き換えたいと思います。

4

0 に答える 0