//========================================================
※グーロバルー変数
static DialogBox *_dialogBox=NULL;
今は開いているダイアログを取得すること、
■_dialogBox = mdlDialog_getToolSettings();// 现在的对话框取得
以上のツールセッティングでダイアログを取得することができる。
もし、取得した_dialogBoxはNULLではない場合、以下のメソッドで具体的内容を
取得できます。
------------------------------------------------------------------------
■すべて項目の設定
・Forces the appearance of all items in the Dialog Box specified
by dbP to match their external state.
・通強制規定的DBP,以配合其外部的状態在会話框中的所有項目的外観。
・一般的に以下の場面でよく使います。
○HOOK関数の DITEM_MESSAGE_STATECHANGED
case DITEM_MESSAGE_STATECHANGED:
mdlDialog_itemsSynch(d->db);
○再読み込む
BoolInt mdlDialog_itemsSynch
(
DialogBox* dbP
);
这个包括所有项目。
------------------------------------------------------------------------
■項目によって
例文:
itemP = mdlDialog_itemGetByTypeAndId(d->db, RTYPE_ToggleButton, TOGGLEID_INSERTSYMBOL_OFSSET_X, 0);
if(NULL != itemP)
{
mdlDialog_itemSynch(d->db, itemP->itemIndex);
}
BoolInt mdlDialog_itemSynch
(
DialogBox* dbP ,
int iItem
);
这个单个项目
------------------------------------------------------------------------
■ 定義ファイルでの項目タイプと項目のIDによって、
・Causes a DITEM_MESSAGE_SYNCHRONIZE message to be sent to the dialog
item indicated by itemType and itemId in the Dialog Box indicated by dbP.
例文:
memset(&spnBoxValue, 0, sizeof(ValueUnion));
spnBoxValue.doubleFormat = _HatchSpan;
if( diP = mdlDialog_itemGetByTypeAndId(_dialogBox, RTYPE_SpinBox, SPINBOXID_HatchSpan, 0) )
{
printf(pBuf, "%.1f %s", _HatchSpan, "mm");
mdlDialog_itemSetValue(NULL, doubleType, &spnBoxValue, pBuf, _dialogBox, diP->itemIndex);
mdlDialog_itemSynch(_dialogBox, diP->itemIndex );
}
BoolInt mdlDialog_itemSynchByTypeAndId
(
DialogBox* dbP ,
UInt32 itemType ,
int itemId
);
这个也是单个项目
------------------------------------------------------------------------
■mdlDialog_というMDL関数はダイアログの操作関数ですね。
mdlDialog_item** 項目と関連する関数
set、getもたくさんあります。
MicroStation V8 MDL Function Referenceを参照してください。
まずはダイアログの構成を理解して、自分のダイアログは何の項目を含めているかを
取得して、それに対して、どんなMDL関数を使うかを考えます。
没有评论:
发表评论