예제 #1
0
void CDlgEventList::OnLButtonUp(UINT nFlags, CPoint point) 
{
	int i=0;
	for( i=0; i<BTN_COUNT; i++)
	{
		if(m_Item[i].nState == BTN_STATE_DOWN )
		{
			m_Item[i].nState = BTN_STATE_NORMAL;
			switch( i )
			{
			case 0:	OnBtnDelAll();break;
			case 1:	OnBtnPageUp();break;
			case 2:	OnBtnPageDown();break;
			case 3: OnExit();break;
			default:
				break;
			}
		}
	}

	for(i=0;i<elist_count;i++)
	{
		if(m_list[i].nState == BTN_STATE_DOWN )
		{
			//m_list[i].nState = BTN_STATE_NORMAL;
			//UserClickItem( i );
			
			//CResString str;
			//str.LoadString( RES_BUTTON_DELETE_ALL );
			CString str = _T("确定发送该条事件信息?");
			CDlgConfirm::m_stTitle = str;
			CDlgConfirm dlg;
			dlg.DoModal();

			if( CDlgConfirm::s_bOk )
			{
				UINT nID = m_nEvent_ID[i];
				CMsgQueue::Instance().PostMsgQueue(g_nWM_MENU_GNSSTERMINAL, enMSG_ID::MSG_TMN_EVENT_REPORT, nID);

				CDlgMsgBox	dlgBox;
				CDlgMsgBox::SetTextInfo(_T("发送中..."));
				dlgBox.DoModal();

				m_nPageIndex	= 0;
				m_nPageCount	= 1;
				m_nRecordCount	= 0;

				ShowPage( m_nPageIndex );
			}
		}
	}

	Invalidate();
	ReleaseCapture();
	CDialogBase::OnLButtonUp(nFlags, point);
}
예제 #2
0
void CPhoneBook::OnOutBook()
{
	CResString str;
	str.LoadString( RES_BUTTON_OUT );
	CResString str1;
	str1.LoadString(RES_BLUETOOTH_PHONEBOOK);

	CDlgConfirm::m_stTitle = str+str1;
	
	CDlgConfirm dlg;
	dlg.DoModal();

	CFile PBookFile;
	char strnum[MAX_PATH];
	char Tail[2]= {0x0d,0x0a};
	CString name;
	CString num;
	CString city;
	if( CDlgConfirm::s_bOk )
	{
		::DeleteFile( _T("\\SDMMC DISK\\PhoneBook.txt") );
		if( !PBookFile.Open(_T("\\SDMMC DISK\\PhoneBook.txt"),
				CFile::modeCreate | CFile::modeReadWrite ,NULL) )
				return;

		CPhoneBookFile* PhoneBook = NULL;
		for ( int i =0; i<PhoneBookMng::Instance().GetCount();i++ )
		{
			PhoneBook =  PhoneBookMng::Instance().GetPhoneBookItem( i );
			
			wcstombs(strnum, (LPCTSTR)PhoneBook->m_csName, PhoneBook->m_csName.GetLength()*2);
			strnum[PhoneBook->m_csName.GetLength()*2] = '\0';
			PBookFile.Write(strnum,strlen(strnum));
			PBookFile.Write("  ",2);
			wcstombs(strnum, (LPCTSTR)PhoneBook->m_csNum, PhoneBook->m_csNum.GetLength()*2);
			strnum[PhoneBook->m_csNum.GetLength()*2] = '\0';
			PBookFile.Write(strnum,strlen(strnum));
			PBookFile.Write(Tail,2);
		}
		PBookFile.Close();
	}
}
예제 #3
0
void CPhoneLog::OnStaticList(UINT nId)
{
	CString str;
	if(ItemStr[nId] == _T("")) return;
	m_Pos = (m_CurPage)*5 + nId;
// 	CDialLog* pPhoneLogItem = NULL;
// 	pPhoneLogItem = (CDialLog*)m_ObArrary->GetAt(m_Pos);
	CDlgConfirm dlg;
	CResString Resstr;
	Resstr.LoadString(RES_BUTTON_CALL_PHONE);
	CDlgConfirm::m_stTitle = Resstr;
	dlg.DoModal();
	if( CDlgConfirm::s_bOk )
	{
		CGSMDial::m_UserNum = m_Item[nId].chChar;
		CGSMDial::m_bAutoDial = TRUE;
		 HWND hWnd = m_pGSMMain->GetSafeHwnd();
		//用户拨打电话消息
		::PostMessage( hWnd, 0x9876, 0,0 );
	}

}
예제 #4
0
void CPhoneBook::OnInBook() 
{
	CDlgPbookBrw dlg;
	dlg.DoModal();
	if( CDlgPbookBrw::s_bOk )
	{
		CResString str;
		str.LoadString(RES_BUTTON_IN);
		CResString str1;
		str1.LoadString(RES_BLUETOOTH_PHONEBOOK);

		CDlgConfirm dlg;
		CDlgConfirm::m_stTitle = str + str1;
		dlg.DoModal();

		if( CDlgConfirm::s_bOk )
		{
			ReadIniFile( CDlgPbookBrw::s_csPath );
			PostMessage(WM_ACTIVATE);
		}
	}
 }
예제 #5
0
void  CDlgAnswerList::OnBtnDelAll()
{
	CResString str;
	str.LoadString( RES_BUTTON_DELETE_ALL );
	
	CDlgConfirm::m_stTitle = str;
	CDlgConfirm dlg;
	dlg.DoModal();
	
	if( CDlgConfirm::s_bOk )
	{
		CppSQLite3DB db;
		db.open(PATH_SQLITE_DB_808);
		db.execDML( "DELETE FROM answer;" );
		db.close();

		m_nPageIndex	= 0;
		m_nPageCount	= 1;
		m_nRecordCount	= 0;

		ShowPage( m_nPageIndex );
	}
}
예제 #6
0
// 草绘裁剪
void OnTrimBySketchActFn()
{
	/*if (!QuickCheckValidLicense(SMART_PROFESSIONAL))
		return;*/

	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	DestroyAllDialog();
	CancelSelectDialog();
	Sleep(50);

	ProError status;
	ProMdl pMdl = GetCurrentMdl();
	if (pMdl == NULL)
	{
		MessageBox(NULL, L"当前环境未发现模型!", L"提示", MB_OK|MB_ICONWARNING);
		return;
	}
	
	// 选择草绘
	vector<ProSelection> arrSel;
	ShowMessageTip(L"Tips.选择草绘特征...");
	while (SelectObject(arrSel, "feature"))
	{
		// 检查是否为草绘曲线
		ProFeature featSketch;
		status = ProSelectionModelitemGet(arrSel[0], &featSketch);
		ProFeattype featType;
		status = ProFeatureTypeGet(&featSketch, &featType);
		if (featType == PRO_FEAT_CURVE)
		{
			ProAsmcomppath acomppath;
			ProSelectionAsmcomppathGet(arrSel[0], &acomppath);

			ProSelection selQuilt;	// 待裁剪的平面
			BOOL bGetQuilt = FALSE;

			// 获取草绘曲线所在的平面
			ProElement elemTreeCurve = NULL;
			ProFeatureElemtreeExtract(&featSketch, NULL, PRO_FEAT_EXTRACT_NO_OPTS, &elemTreeCurve);
			ProElempathItem pathItemType[1];
			pathItemType[0].type = PRO_ELEM_PATH_ITEM_TYPE_ID;
			pathItemType[0].path_item.elem_id = PRO_E_CURVE_TYPE;
			ProElempath elemPathCurveType;
			ProElempathAlloc(&elemPathCurveType);
			ProElempathDataSet(elemPathCurveType, pathItemType, 1);
			ProElement elemType;
			status = ProElemtreeElementGet(elemTreeCurve, elemPathCurveType, &elemType);
			if (status == PRO_TK_NO_ERROR)
			{
				ProValue valType;
				status = ProElementValueGet(elemType, &valType);
				ProValueData valdataType;
				status = ProValueDataGet(valType, &valdataType);
				if (valdataType.v.i == PRO_CURVE_TYPE_SKETCHED)
				{
					// 确定为草绘曲线,进而获取草绘平面
					ProElempathItem pathItemSketchPlane[3];
					pathItemSketchPlane[0].type = PRO_ELEM_PATH_ITEM_TYPE_ID;
					pathItemSketchPlane[0].path_item.elem_id = PRO_E_STD_SECTION;
					pathItemSketchPlane[1].type = PRO_ELEM_PATH_ITEM_TYPE_ID;
					pathItemSketchPlane[1].path_item.elem_id = PRO_E_STD_SEC_SETUP_PLANE;
					pathItemSketchPlane[2].type = PRO_ELEM_PATH_ITEM_TYPE_ID;
					pathItemSketchPlane[2].path_item.elem_id = PRO_E_STD_SEC_PLANE;
					ProElempath elemPathPlane;
					ProElempathAlloc(&elemPathPlane);
					ProElempathDataSet(elemPathPlane, pathItemSketchPlane, 3);
					ProElement elemPlane;
					status = ProElemtreeElementGet(elemTreeCurve, elemPathPlane, &elemPlane);
					if (status == PRO_TK_NO_ERROR)
					{
						ProValue valPlane;
						status = ProElementValueGet(elemPlane, &valPlane);
						ProValueData valdataPlane;
						status = ProValueDataGet(valPlane, &valdataPlane);
						ProGeomitem itemSurf;
						ProSelectionModelitemGet(valdataPlane.v.r, &itemSurf);
						ProSurface surf;
						ProGeomitemToSurface(&itemSurf, &surf);

						// 获取面所在面组
						ProQuilt quilt;
						status = ProSurfaceQuiltGet(ProMdlToSolid(pMdl), surf, &quilt);
						if (status == PRO_TK_NO_ERROR)
						{
							ProGeomitem itemQuilt;
							status = ProQuiltToGeomitem(ProMdlToSolid(pMdl), quilt, &itemQuilt);
							status = ProSelectionAlloc(&acomppath, &itemQuilt, &selQuilt);
							bGetQuilt = TRUE;
						}
					}
				}
			}
			
			if (!bGetQuilt)
			{
				ShowMessageTip(L"Tips.草绘的放置面非可裁剪面,请手动选择需裁剪的面...");
				// 手动选取待裁剪的面
				vector<ProSelection> arrSelSrf;
				if (SelectObject(arrSelSrf, "dtmqlt"))
				{
					ProSelectionCopy(arrSelSrf[0], &selQuilt);
				}
				else
				{
					break;
				}
			}
	
			// 遍历特征,获取特征中的全部复合曲线
			vector<ProGeomitem> arrItemCurves;
			status = ProFeatureGeomitemVisit(&featSketch, PRO_CURVE, FeatureGeomsGetAction, NULL, &arrItemCurves);
			vector<int> arrFeatID;
			for (int i=0; i<arrItemCurves.size(); i++)
			{
				ProCurve curve;
				status = ProGeomitemToCurve(&arrItemCurves[i], &curve);
				// 检查是否为复合曲线
				ProEnttype curveType;
				status = ProCurveTypeGet(curve, &curveType);
				if (curveType == PRO_ENT_CMP_CRV)
				{
					// 进行裁剪
					ProSelection selCurve;
					status = ProSelectionAlloc(&acomppath, &arrItemCurves[i], &selCurve);
					int nFeatID = TrimQuiltByCurve(pMdl, selQuilt, selCurve, PRO_EDGE_SAME_DIRECTION);
					if (nFeatID > 0)
					{
						// 创建成功,记录特征ID
						arrFeatID.push_back(nFeatID);

						// 第8步:提示是否反向或继续修剪
						CDlgConfirm dlg;
						while (1)
						{
							int nResult = (int)dlg.DoModal();
							if (nResult == IDOK)
							{
								break;
							}
							else if (nResult == IDRETRY) 
							{
								// 修改裁剪方向
								ProFeature feat;
								feat.id = nFeatID;
								feat.type = PRO_FEATURE;
								feat.owner = pMdl;
								ReverseTrimDirection(feat);
							}
							else
							{
								InvalidateDrawing();
								ProMessageClear();
								return;
							}
						}
					}
				}
			}
			// 合并成组
			CreateFeatGroup(pMdl, arrFeatID, L"包覆面_裁剪");
			break;
		}
		else
		{
			// 
			MessageBox(NULL, L"所选特征非草绘特征,请重新选择!", L"提示", MB_OK);
		}
	}

	InvalidateDrawing();
	ProMessageClear();
}
예제 #7
0
// 环边裁剪
void OnTrimByEdgeActFn()
{
	/*if (!QuickCheckValidLicense(SMART_PROFESSIONAL))
		return;*/

	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	DestroyAllDialog();
	CancelSelectDialog();
	Sleep(50);

	// 第1步:检查当前模型环境
	ProMdl pMdl = GetCurrentMdl();
	if (pMdl == NULL)
	{
		MessageBox(NULL, L"当前环境未发现模型!", L"提示", MB_OK|MB_ICONWARNING);
		return;
	}
	// 第2步:选择要裁剪的面
	ShowMessageTip(L"Tips.选择需要裁剪的面...");
	vector<ProSelection> arrSelSrf;
	ProSelection selSrf = NULL;
	while (SelectObject(arrSelSrf, "dtmqlt"))
	{
		ProSelectionCopy(arrSelSrf[0], &selSrf);
		// 第3步:暂时隐藏选择的面,选取完成后恢复显示
		ProModelitem itemQuilt;
		ProSelectionModelitemGet(arrSelSrf[0], &itemQuilt);
		ProModelitemHide(&itemQuilt);

		// 第4步:选择面上的环(先选取环的一条边)
		int nEdgeDir = PRO_EDGE_SAME_DIRECTION;
		ProSelection *pArrSelInit = NULL;
		ProArrayAlloc(0, sizeof(ProSelection), 1, (ProArray*)&pArrSelInit);
		vector<ProSelection> arrSelEdge;
		while (SelectObject(arrSelEdge, "sldedge"))
		{
			// 第5步:获取边所在环的全部边
			vector<ProSelection> arrSelContourEdges;
			if (GetContourByEdge(arrSelEdge[0], arrSelContourEdges, nEdgeDir))
			{
				for (int i=0; i<arrSelContourEdges.size(); i++)
				{
					ProArrayObjectAdd((ProArray*)&pArrSelInit, 0, 1, &arrSelContourEdges[i]);
				}
				break;
			}
			else
			{
				int nMsgResult = MessageBox(NULL, L"选取的边不是完整环的组成边,是否手动选取?\n是:手动选取;否:重新选取; 取消:退出", L"提示", MB_YESNOCANCEL|MB_ICONWARNING);
				if (nMsgResult == IDYES)	// 手动选择
				{
					ProArrayObjectAdd((ProArray*)&pArrSelInit, 0, 1, &arrSelEdge[0]);
					break;
				}
				else if (nMsgResult == IDCANCEL)	// 退出
				{
					ProModelitemUnhide(&itemQuilt);
					InvalidateDrawing();
					return;
				}
			}
		}
		// 第6步:自动选中对应完整环的全部边
		arrSelEdge.clear();
		if (SelectObject(arrSelEdge, "edge", MAX_SELECTION, pArrSelInit))
		{
			// 判断面的方向
			/*ProQuilt quilt;
			BOOL bSurfDirOut = FALSE;
			ProGeomitemToQuilt(&itemQuilt, &quilt);
			vector<ProSurface> arrSurfaces;
			ProQuiltSurfaceVisit(quilt, QuiltSurfacesGetAction, NULL, &arrSurfaces);
			ProGeomitemdata* psrfdata;
			ProSurfaceDataGet(arrSurfaces[0], &psrfdata);
			if (psrfdata->data.p_surface_data->orient == PRO_SURF_ORIENT_OUT)
				bSurfDirOut = TRUE;
			ProGeomitemdataFree(&psrfdata);*/
			
			// 第7步:修剪曲面
			int nFeatID = TrimQuiltByEdgeGroup(pMdl, selSrf, arrSelEdge, nEdgeDir);
			ProModelitemUnhide(&itemQuilt);
			SAFE_DELETE_PROARRAY(pArrSelInit);
			if (nFeatID > 0)
			{
				// 第8步:提示是否反向或继续修剪
				CDlgConfirm dlg;
				while (1)
				{
					int nResult = (int)dlg.DoModal();
					if (nResult == IDOK)
					{
						break;
					}
					else if (nResult == IDRETRY) 
					{
						// 修改裁剪方向
						ProFeature feat;
						feat.id = nFeatID;
						feat.type = PRO_FEATURE;
						feat.owner = pMdl;
						ReverseTrimDirection(feat);
					}
					else
					{
						InvalidateDrawing();
						ProMessageClear();
						return;
					}
				}
			}
			else if (MessageBox(NULL, L"裁剪失败,详见模型特征树。是否继续?", L"提示", MB_YESNO) == IDNO)
			{
				break;
			}
		}
		else
		{
			// 恢复显示
			ProModelitemUnhide(&itemQuilt);
			break;
		}
	}
	
	InvalidateDrawing();
	ProMessageClear();
}
예제 #8
0
// 底面切除
void OnBottomCutActFn()
{
	/*if (!QuickCheckValidLicense(SMART_PROFESSIONAL))
		return;*/

	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	DestroyAllDialog();
	CancelSelectDialog();
	Sleep(50);
	ProError status;

	// 第1步:检查当前模型环境
	ProMdl pMdl = GetCurrentMdl();
	if (pMdl == NULL)
	{
		MessageBox(NULL, L"当前环境未发现模型!", L"提示", MB_OK|MB_ICONWARNING);
		return;
	}
	// 第2步:选择参考
	ShowMessageTip(L"Tips.选择拼接后的包覆面进行切除...");
	vector<ProSelection> arrSelQlt;
	ProSelection selQlt = NULL;
	if (SelectObject(arrSelQlt, "dtmqlt"))
	{
		status = ProSelectionCopy(arrSelQlt[0], &selQlt);

		// 第3步:暂时隐藏选择的面,选取完成后恢复显示
		ProModelitem itemQuilt;
		status = ProSelectionModelitemGet(arrSelQlt[0], &itemQuilt);
		status = ProModelitemHide(&itemQuilt);
		
		// 第4步:选择底面
		ShowMessageTip(L"Tips.选择需要平齐的底面...");
		vector<ProSelection> arrSelSrf;
		if (SelectObject(arrSelSrf, "surface"))
		{
			status = ProModelitemUnhide(&itemQuilt);

			// 第5步:以底面为参照创建基准面
			ProModelitem itemPlane;
			int nDatumFeatID = CreateDatumPlane(pMdl, arrSelSrf[0], itemPlane);
			if (nDatumFeatID > 0)
			{
				ProSelection selRef;
				status = ProSelectionAlloc(NULL, &itemPlane, &selRef);
				int nFeatID = TrimSurfaceBySurf(pMdl, selQlt, selRef, 1);
				if (nFeatID > 0)
				{
					// 第8步:提示是否反向或继续修剪
					CDlgConfirm dlg;
					while (1)
					{
						int nResult = (int)dlg.DoModal();
						if (nResult == IDRETRY) 
						{
							// 修改裁剪方向
							ProFeature feat;
							feat.id = nFeatID;
							feat.type = PRO_FEATURE;
							feat.owner = pMdl;
							ReverseTrimDirection(feat);
						}
						else
						{
							break;
						}
					}
				}
				else
				{
					MessageBox(NULL, L"切除失败,详见模型特征树!", L"提示", MB_OK);
				}
			}
		}
		else
			status = ProModelitemUnhide(&itemQuilt);
	}
	InvalidateDrawing();
	ProMessageClear();
}
예제 #9
0
void CPhoneLog::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	for(int i=0;i<12;i++)
	{
//		if(PtInRect(&m_Item[i].rect,point))
//		{
			if(m_Item[i].nState==BTN_STATE_DOWN)
			{
				m_Item[i].nState = BTN_STATE_NORMAL;
				switch(i)
				{
				case 0:	case 1:	case 2:	case 3:	case 4:
					OnStaticList(i);
					break;
				case 5:
					OnBtnPageup(); 
					break;
				case 6:	//拨打出
					m_Item[6].nState = BTN_STATE_DISABLE;
					m_Item[7].nState = BTN_STATE_NORMAL;
					m_Item[8].nState = BTN_STATE_NORMAL;
					//PhoneLogMng::Instance().SetLPhoneLogState(3);
					enLog = PLACEDCALL;
					PostMessage(WM_ACTIVATE,WA_ACTIVE,0);
					break;
				case 7:	//已接听
					m_Item[6].nState = BTN_STATE_NORMAL;
					m_Item[7].nState = BTN_STATE_DISABLE;
					m_Item[8].nState = BTN_STATE_NORMAL;
					//PhoneLogMng::Instance().SetLPhoneLogState(2);
					enLog = RECEIVEDCALL;
					PostMessage(WM_ACTIVATE,WA_ACTIVE,0);
					break;
				case 8:	//未接听
					m_Item[6].nState = BTN_STATE_NORMAL;
					m_Item[7].nState = BTN_STATE_NORMAL;
					m_Item[8].nState = BTN_STATE_DISABLE;
					//PhoneLogMng::Instance().SetLPhoneLogState(1);
					enLog = MISSEDCALL;
					PostMessage(WM_ACTIVATE,WA_ACTIVE,0 );
					break;
				case 9:
					{
						CDlgConfirm dlg;
						CResString str;

						if( m_Item[6].nState == BTN_STATE_DISABLE )
						{
							str.LoadString(RES_BUTTON_DEL_OUT);
							CDlgConfirm::m_stTitle = str;
							dlg.DoModal();
							if( CDlgConfirm::s_bOk )
								OnBtnDelLogState(1); 
						}
						else if( m_Item[7].nState == BTN_STATE_DISABLE )
						{
							str.LoadString(RES_BUTTON_DEL_IN);
							CDlgConfirm::m_stTitle = str;
							dlg.DoModal();
							if( CDlgConfirm::s_bOk )
								OnBtnDelLogState(2); 
							
						}
						else if( m_Item[8].nState == BTN_STATE_DISABLE )
						{
							str.LoadString(RES_BUTTON_DEL_NO);
							CDlgConfirm::m_stTitle = str;
							dlg.DoModal();
							if( CDlgConfirm::s_bOk )
								OnBtnDelLogState(3); 
							
						}
						PostMessage(WM_ACTIVATE,WA_ACTIVE,0);
					}
					break;
				case 10:
					OnBtnPagedown(); 
					break;	
				case 11:
					OnExit();
					break;					
				default:
					break;
				
				}
			}
	}

	Invalidate();
	CDialogBase::OnLButtonUp(nFlags, point);
}
예제 #10
0
void CPhoneBook::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	for(int j=0; j<5; j++)
	{	
//		if(PtInRect(&m_Item[j].rect,point))	
//		{
			if(m_Item[j].nState==BTN_STATE_DOWN)
			{
				m_Item[j].nState = BTN_STATE_NORMAL;
				switch(j)
					{

					case 0:
						m_CurListPos = 0;
						OnStaticList(0);
						break;
					case 1:
						m_CurListPos = 1;
						OnStaticList(1);
						break;
					case 2:
						m_CurListPos = 2;
						OnStaticList(2);
						break;
					case 3:
						m_CurListPos = 3;
						OnStaticList(3);
						break;
 					case 4:
 						m_CurListPos = 3;
						OnStaticList(4);
						break;
					}
			}
//		}

	}

	for(int i=5;i<12;i++)
	{
//		if(PtInRect(&m_Item[i].rect,point) /*&& m_Item[i].nState==BTN_STATE_DOWN*/)
//		{
			if(m_Item[i].nState==BTN_STATE_DOWN)
			{
				m_Item[i].nState = BTN_STATE_NORMAL;
			//m_Item[i].nState = BTN_STATE_NORMAL;
				switch(i)
				{
				case 5:
					OnBtnPageup(); 
					break;
				case 6:
					OnAddPhone();
					break;
				case 7:
					OnOutBook();
					break;
				case 8:
					OnInBook();
					break;
				case 9:
					{
						CResString str;
						str.LoadString( RES_BUTTON_DEL_ALL_PB );
						
						CDlgConfirm::m_stTitle = str;
						CDlgConfirm dlg;
						dlg.DoModal();

						if( CDlgConfirm::s_bOk )
						{
							OnBtnDelAll(); 
						}
					}
					break;
				case 10:
					OnBtnPagedown();

					break;
				case 11:
					OnExit();

					break;	
						
				default:
					break;
				
				}
			}
//		}
	}

	
	Invalidate();
	CDialogBase::OnLButtonUp(nFlags, point);
}