mdlStringList_getInfoFieldInt32の使用方法


 プロダクト:MicroStation
 バージョン:CE update13
 環境:N/A
 エリア:Programming
 サブエリア:MDL

1. .rファイルに次のようなリソース定義します:
StringList STRINGLIST_GratingParam =
{
4,
{
{ {1900, 6400, 2, 31}, "WB" },
{ {1900, 3200, 2, 31}, "WF" },
{ {1500, 6400, 2, 39}, "WD" },
{ {1500, 3200, 2, 39}, "WDF" },
{ {1900, 6400, 2, 31}, "WBA" },
{ {1900, 3200, 2, 31}, "WFA" },
}
};

2. cppファイルには、フィールド値を取得する方法をテスト関数getInfoFieldTestがあります。.
void getInfoFieldTest()
{
Int32 crossingBarSpacing = -1;
long index;
StringListP strListP = mdlStringList_loadResource(NULL, STRINGLIST_GratingParam);
if (strListP == NULL)
{
mdlDialog_dmsgsPrint(L"Can't find string list");
return;
}
if (mdlStringList_search(&index, strListP, L"WDF", NULL, 0, NULL) != SUCCESS)
{
mdlStringList_destroy(strListP);
mdlDialog_dmsgsPrint(L"Can't find \"WDF\" item in string list");
return;
}
StatusInt status;
crossingBarSpacing = mdlStringList_getInfoFieldInt32(strListP, index, 1, &status);
mdlStringList_destroy(strListP);
WPrintfString wStr(L"crossingBarSpacing = %d", crossingBarSpacing);
mdlDialog_dmsgsPrint(wStr);
}


3. この関数を実行すると、以下の出力が得られます。

crossingBarSpacing = 3200

 Original Author:Mikihiko Tabata