コード例 #1
0
BOOL DialogImageTextureName::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: この位置に初期化の補足処理を追加してください
	ImageTextureNode	*imgTex;
	char			*selectString = NULL;

	SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0L);
	for (imgTex = GetWorld()->getSceneGraph()->findImageTextureNode(); imgTex; imgTex=imgTex->nextTraversal()) {
		if (imgTex && StringLength(imgTex->getName()) && StringNCompare(imgTex->getName(), CTB_NODE_NAME, strlen(CTB_NODE_NAME)))
			SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_ADDSTRING, 0, (LONG)(LPSTR)imgTex->getName());
		if (!selectString)
			selectString = imgTex->getName();
	}

	Node	*node	= getNode();
	if (node)
		SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_SELECTSTRING,(WPARAM)-1, (LPARAM)(LPCSTR)node->getName());
	else if (selectString)
		SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_SELECTSTRING,(WPARAM)-1, (LPARAM)(LPCSTR)selectString);
	
	return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
	              // 例外: OCX プロパティ ページの戻り値は FALSE となります
}
コード例 #2
0
ファイル: SceneGraph.cpp プロジェクト: lukfugl/raytracer
ImageTextureNode *SceneGraph::findImageTextureNode(char *name) {
	if (!name || strlen(name) <= 0)
		return NULL;
	for (ImageTextureNode *node = findImageTextureNode(); node; node = node->nextTraversal()) {
		const char *nodeName = node->getName();
		if (nodeName && strlen(nodeName)) {
			if (!strcmp(name, nodeName))
				return node;
		}
	}
	return NULL;
}