Esempio n. 1
0
BOOL CDlgConServer::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CBpRegKey rk;
	CString strPath = APABI_USERINFO_KEYROOT;
	strPath += REGISTRY_KEY_OPTION;
	if (rk.Open(HKEY_CURRENT_USER, strPath) == ERROR_SUCCESS)
	{
		rk.Read(REGISTRY_KEY_CONSERVER, m_bAutoConServer);
		rk.Close();
	}

	// 载入上次连接的服务器信息
	LoadServerData(m_clientInfo);

	m_nServerPort = (htons)(m_clientInfo.serverport);
	m_nClientPort = (htons)(m_clientInfo.clientport);
	m_nServerIp = (htonl)(m_clientInfo.serverip);
	m_nServerIp2 = (htonl)(m_clientInfo.serverip2);

	m_ipaServer.SetAddress(m_nServerIp);
	m_ipaServer2.SetAddress(m_nServerIp2);

	UpdateData(FALSE);

	return TRUE;  	              
}
void CDlgCheckRuleMdlMatSystem::OnBnClickedMatFolder()
{
	CString strMatResPath;
	CBpRegKey rk;
	CString strPath = DOCTOR_PRODUCT_KEYROOT;
	strPath += REGISTRY_KEY_OPTION;
	if (rk.Open(HKEY_CURRENT_USER, strPath) == ERROR_SUCCESS)
	{
		// 材料库的路径
		CString strValue;
		if (rk.Read(REGISTRY_KEY_MATERIALLIB_PATH, strValue) == ERROR_SUCCESS)
			strMatResPath = strValue;
	}

	if (strMatResPath.IsEmpty())
	{
		GetMainModulePath(AfxGetInstanceHandle(), strMatResPath);
		strMatResPath = strMatResPath + L"Resource\\MaterialLib\\";
	}
	if (strMatResPath[strMatResPath.GetLength()-1] != L'\\')
		strMatResPath = strMatResPath + L"\\";

	// 允许多选
	CFileDialog dlgFile(TRUE, _T("*.mtl"), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, _T("材料文件(*.mtl)|*.mtl"));
	if (GetVersion() < 0x80000000) 
		// 运行的操作系统是Windows NT/2000 
		dlgFile.m_ofn.lStructSize = 88;	// 显示新的文件对话框 
	else
		// 运行的操作系统Windows 95/98 
		dlgFile.m_ofn.lStructSize = 76;	// 显示老的文件对话框 
	dlgFile.m_ofn.lpstrInitialDir = strMatResPath;
	
	if (dlgFile.DoModal() == IDOK)
	{
		POSITION pos_file;
		pos_file = dlgFile.GetStartPosition();

		CString strFilePath;
		CStringArray arrMatNames;
		while(pos_file != NULL)
		{
			strFilePath = dlgFile.GetNextPathName(pos_file);
			int nLength = strFilePath.GetLength();
			int nPos = strFilePath.ReverseFind(_T('\\'));
			strFilePath = strFilePath.Mid(nPos+1, nLength-nPos-5);
			arrMatNames.Add(strFilePath);
		}
		int nListCount = (int)m_listMats.GetItemCount();
		for (int i=0; i<arrMatNames.GetCount(); i++)
		{
			BOOL bExist = FALSE;
			for (int j=0; j<nListCount; j++)
			{
				if (arrMatNames[i].CompareNoCase(m_listMats.GetItemText(j, 0)) == 0)
				{
					bExist = TRUE;
				}
			}
			if (!bExist)
				m_listMats.InsertItem(nListCount, arrMatNames[i]);
		}
		UpdateCheckRuleByControl();
		::SendMessage(GetParent()->m_hWnd, WM_MODIFY_CHECK_RULE, 0, (LPARAM)&m_checkRule);
	}
}