MDMouseInput2 メソッド

構文

LONG MDMouseInput2(DOUBLE * x1, DOUBLE * y1, DOUBLE * x2, DOUBLE * y2, LONG lFlags);

(JavaScript用) string MDMouseInput2JS(lFlags);

間取りの作業画面内で線分を書くと、両端の論理座標を取得します。
※線分の入力が終わるかキャンセルされるまで処理は戻りません。

パラメータ

x1
始点の論理X座標
y1
始点の論理Y座標
x2
終点の論理X座標
y2
終点の論理Y座標
lFlags
フラグ。0で吸着なし、1で吸着あり。
※将来拡張する可能性があるので2以上の値を設定しないでください。

戻り値

次の値のいずれかが返ります。

  • 0入力が(右クリック、ESCボタン押し下げ、他コマンド実行などで)キャンセルされました
  • 1入力が正常に行われました

使用例

// C++ sample
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);

double x1, y1, x2, y2;
AfxMessageBox(TEXT("間取りの作業画面内で線分を書くと、両端の論理座標を取得します。"));
LONG lRet = m_MadoriDoc->MDMouseInput2(&x1, &y1, &x2, &y2, 1);
CString strMes;
strMes.Format(TEXT("返値=%d (%.2lf, %.2lf)-(%.2lf, %.2lf)"), lRet, x1, y1, x2, y2);
AfxMessageBox(strMes);
// JavaScript sample
var doc = new CMadoriDoc();
var data = eval( doc.MDMouseInput2JS(1) );
var msg = "返値=" + data.Result + " (" + data.x1 + ", " + data.y1 + ")-(" +
	data.x2 + ", " + data.y2 + ")";
alert(msg);