BOOL DialogModuleInterpNormal::OnInitDialog() { CDialog::OnInitDialog(); // TODO: この位置に初期化の補足処理を追加してください NormalInterpolatorNode *interp; char *selectString = NULL; SendDlgItemMessage(IDC_NODE_NAME, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0L); for (interp = GetWorld()->getSceneGraph()->findNormalInterpolatorNode(); interp; interp=interp->nextTraversal()) { if (interp && StringLength(interp->getName()) && StringNCompare(interp->getName(), CTB_NODE_NAME, strlen(CTB_NODE_NAME))) SendDlgItemMessage(IDC_NODE_NAME, CB_ADDSTRING, 0, (LONG)(LPSTR)interp->getName()); if (!selectString) selectString = interp->getName(); } Node *node = getNode(); if (node) SendDlgItemMessage(IDC_NODE_NAME, CB_SELECTSTRING,(WPARAM)-1, (LPARAM)(LPCSTR)node->getName()); else if (selectString) SendDlgItemMessage(IDC_NODE_NAME, CB_SELECTSTRING,(WPARAM)-1, (LPARAM)(LPCSTR)selectString); return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります // 例外: OCX プロパティ ページの戻り値は FALSE となります }
NormalInterpolatorNode *SceneGraph::findNormalInterpolatorNode(char *name) { if (!name || strlen(name) <= 0) return NULL; for (NormalInterpolatorNode *node = findNormalInterpolatorNode(); node; node = node->nextTraversal()) { const char *nodeName = node->getName(); if (nodeName && strlen(nodeName)) { if (!strcmp(name, nodeName)) return node; } } return NULL; }