1

ダイアログボックスの単位を画面の座標値に変換する方法を誰かが説明できますか?MapDialogRect関数があるのを見ましたが、その変換RECTは、x、yおよびcx、cy値を画面座標値に変換したいのですが、これを実現する方法がよくわかりません。

前もって感謝します。

4

1 に答える 1

7

すでにウィンドウハンドルがある場合はMapDialogRect関数を使用してください。他の人が指摘しているように、MapDialogRectを取りますRECT。したがって、がない場合はRECT、を作成できます。

RECT rc;
rc.left = x;
rc.top = y;
rc.right = x + cx;
rc.bottom = y + cy;
MapDialogRect(hdlg, &rc);

そもそもダイアログボックスのハンドルがないことが問題である場合は、MapDialogRect関数のドキュメントに計算の実行方法が記載されています。ダイアログボックスの平均文字サイズを決定します(ドキュメントで呼び出さbaseunitXれますbaseunitY) 。次に、それを数式に接続します。

これにより、ダイアログボックスのクライアントの長方形が計算されることに注意してください。それでも、クライアント以外のスペースを追加する必要があります。何をしようとしているのかわからないので、クライアント以外のスペースを追加するのが適切かどうかはわかりません。

于 2012-07-24T13:06:39.793 に答える