RestrainDraw プロパティ

解説

unsigned short GetRestrainDraw();
void SetRestrainDraw(unsigned short propVal);

このプロパティが1の場合、編集後の描画やデータ再作成を控えます。0の場合、追加や削除などの編集メソッドを呼ぶたびに、再描画がかかり、1つのアンドゥバッファを使用します。
連続して編集メソッドを呼ぶ時に画面のちらつきを抑えたい場合や、一連操作を1つのアンドゥ操作にまとめたい場合は、1にしておいてから、他のメソッドを呼び出して下さい。そして、一連の操作のあと、再描画などのメソッドを呼んで下さい。

使用例

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

// 再描画抑制
m_MadoriDoc->SetRestrainDraw(1);

// 編集の開始
m_MadoriDoc->EditStart();

// 敷地を追加
m_MadoriDoc->AddSite(,,,,);

// 部屋などを追加
m_MadoriDoc->AddRoom(,,,);
m_MadoriDoc->AddWallEdit(,,,,);

// 斜線を再計算
m_MadoriDoc->RecalcOblique();

// 表示用の形状と寸法線を計算
m_MadoriDoc->RecalcAllShapes();

// 再描画
m_MadoriDoc->UpdateAllViews();

// フラグを戻す
m_MadoriDoc->SetRestrainDraw(0);

(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-5L3L45');