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); }
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(); } }
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 ); } }
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); } } }
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 ); } }
// 草绘裁剪 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(); }
// 环边裁剪 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(); }
// 底面切除 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(); }
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); }
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); }