0

私はフックしてCreateDialogIndirectParamいます。ダイアログ ボックスを操作したいのですが、幅、高さ、x と y の位置がダイアログ ボックスの単位になっています。誰かがそれらをスクリーン座標に変換する方法を説明できますか?

前もって感謝します。

4

1 に答える 1

1

MapDialogRect()関数を試してください。私はそれがあなたが思うことをすると思います。

マッピングはダイアログで使用されるフォントに依存することに注意してください。したがって、HWNDはその特定のダイアログである必要があります。

またGetDialogBaseUnits()から:

pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);

関数 GetTextMetrics() によって返される値baseunitXtmAveCharWidthbaseUnitYあること。ダイアログフォントが選択されたが必要です。tmHeightHDC

于 2012-07-07T20:07:26.547 に答える