解説
unsigned short GetRestrainDraw();
void SetRestrainDraw(unsigned short propVal);
unsigned short RestrainDraw;
このプロパティが1の場合、編集後の描画やデータ再作成を控えます。0の場合、追加や削除などの編集メソッドを呼ぶたびに、再描画がかかり、1つのアンドゥバッファを使用します。
連続して編集メソッドを呼ぶ時に画面のちらつきを抑えたい場合や、一連操作を1つのアンドゥ操作にまとめたい場合は、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);
// 再描画抑制
m_MadoriDoc->SetRestrainDraw(1);
// 編集の開始
m_MadoriDoc->EditStart();
// 敷地を追加
m_MadoriDoc->AddSite(,,,,);
// 部屋などを追加
m_MadoriDoc->AddRoom(,,,);
m_MadoriDoc->AddWallEdit(,,,,);
// 斜線を再計算
m_MadoriDoc->RecalcOblique();
// 表示用の形状と寸法線を計算
m_MadoriDoc->RecalcAllShapes(0);
// 再描画
m_MadoriDoc->UpdateAllViews();
// フラグを戻す
m_MadoriDoc->SetRestrainDraw(0);
// JavaScript sample
function rgb(r, g, b){
var col = r + (g << 8) + (b << 16);
return col;
}
var doc = new CMadoriDoc();
doc.RestrainDraw = 1;
doc.EditStart();
var vertex = [0.0, 0.0, 2730.0, 0.0, 2730.0, 2730.0, 0.0, 2730.0];
var uRoomType = 15; // 和室
var bDispRoomName = true;
var bDispRoomSize = true;
var dFloorHeight = 0.0;
var dFloorThick = 10.0;
var dCeilingHeight = 3000;
var dHabakiHeight = 50;
var dKoshiHeight = 700;
var dMawaribuchiHeight = 30;
var dKoshiMikiriHeight = 300;
var dBalconyHeight = 700;
var bHabaki = true;
var bMawaribuchi = true;
var bKoshikabe = true;
var bKoshiMikiri = true;
var bRoofFlag = true;
var byHatchStyle = 1; // 塗りつぶし
var crForeColor = rgb(208,213,191);
var crBackColor = rgb(0,0,255);
var bBackTrans = false;
var uTatamiType = 9;
var szFontName = "メイリオ";
var dFontSize = 10;
var byFontAttr = 0;
var dFontAngle = 0;
var crFontColor = rgb(0,0,0);
var result = doc.AddRoom(vertex, uRoomType, "和", bDispRoomName,
bDispRoomSize, dFloorHeight, dFloorThick, dCeilingHeight,
dHabakiHeight, dKoshiHeight, dMawaribuchiHeight, dKoshiMikiriHeight,
dBalconyHeight, bHabaki, bMawaribuchi, bKoshikabe, bKoshiMikiri,
bRoofFlag, byHatchStyle, crForeColor,
crBackColor, bBackTrans, uTatamiType,
szFontName, dFontSize, byFontAttr, dFontAngle, crFontColor);
alert(result);
result = doc.AddPart("C:\\Users\\Public\\Documents\\3DMHPRO8\\PARTS\\Kagu\\01キッチン\\04食器棚\\HLボードL01.m3d",
1000,2000,0,true,0,0,0,false, 0,0,0,0,true,false);
alert(result);
// 斜線を再計算
doc.RecalcOblique();
// 表示用の形状と寸法線を計算
doc.RecalcAllShapes(0);
// 再描画
doc.UpdateAllViews();
// フラグを戻す
doc.RestrainDraw = 0;