構文
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以上の値を設定しないでください。
※将来拡張する可能性があるので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);