// SelectVariantDlg.cpp : implementation file // #include "stdafx.h" #include "IDE.h" #include "SelectVariantDlg.h" #include ".\selectvariantdlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSelectVariantDlg dialog CSelectVariantDlg::CSelectVariantDlg(CWnd* pParent /*=NULL*/) : CDialog(CSelectVariantDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSelectVariantDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_bChk_Dim = false; m_nShowVarType = 0; } void CSelectVariantDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSelectVariantDlg) DDX_Control(pDX, IDC_VARLIST, m_ctrlVariant); //}}AFX_DATA_MAP DDX_Control(pDX, IDC_EDT_DEV_NAME, m_ctrlDevName); DDX_Control(pDX, IDC_EDT_VAR_NAME, m_ctrlVarName); DDX_Check(pDX, IDC_CHECK_DIM, (int &)m_bChk_Dim); } BEGIN_MESSAGE_MAP(CSelectVariantDlg, CDialog) //{{AFX_MSG_MAP(CSelectVariantDlg) ON_NOTIFY(NM_CLICK, IDC_VARLIST, OnClickVarlist) ON_NOTIFY(NM_DBLCLK, IDC_VARLIST, OnNMDblclkVarlist) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, OnBnClickedOk) ON_EN_CHANGE(IDC_EDT_DEV_NAME, OnEnChangeEdtDevName) ON_EN_CHANGE(IDC_EDT_VAR_NAME, OnEnChangeEdtVarName) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSelectVariantDlg message handlers BOOL CSelectVariantDlg::OnInitDialog() { CDialog::OnInitDialog(); CString strVar=g_strStrVar; CString strDes=g_strDes; m_ctrlVariant.InsertColumn(0, strVar, LVCFMT_LEFT, 200, 0); m_ctrlVariant.InsertColumn(1, strDes, LVCFMT_LEFT, 200 ,1); ChangeVariantList("", ""); ((CButton *)GetDlgItem(IDC_CHECK_DIM))->SetCheck( true ); return TRUE; } void CSelectVariantDlg::OnOK() { CDialog::OnOK(); } void CSelectVariantDlg::ChangeVariantList(CString strDevName, CString strVarName) { UpdateData(); CString strVar, strDes; TCHAR buf[200]; LV_ITEM lvitem; int iActualItem; m_ctrlVariant.DeleteAllItems(); int nVarType=1; int nLowerValue=0,nUpperValue=0; int size = pVariantsManager->m_analog.GetSize(); for ( int i = 0; i < size; i++) { CAnalog* pAnalog = pVariantsManager->m_analog.GetAt(i); if( pAnalog==NULL ) return; strVar = pAnalog->m_strName; strDes = pAnalog->m_strDesc; nLowerValue = pAnalog->m_nLowerLimit; nUpperValue = pAnalog->m_nUpperLimit; if( nLowerValue==nUpperValue && nLowerValue==0 ) nVarType = 2; else nVarType = 1; if( m_nShowVarType!=0 && m_nShowVarType!=nVarType ) continue; //if( strDevName.Compare("") && -1==pAnalog->m_pDevice->m_strName.Find(strDevName) ) continue; CString sTempVarName,sTempVar; sTempVarName = strVarName; sTempVar = strVar; sTempVarName = sTempVarName.MakeLower(); sTempVar = sTempVar.MakeLower(); if( !m_bChk_Dim ) { if( sTempVarName.Compare("") && 0!=sTempVar.Find(sTempVarName) ) continue; } else { if( sTempVarName.Compare("") && -1==sTempVar.Find(sTempVarName) ) continue; } lvitem.mask = LVIF_TEXT; lvitem.iItem = i ; lvitem.iSubItem = 0; strncpy (buf, strVar, 100); lvitem.pszText = buf; iActualItem = m_ctrlVariant.InsertItem(&lvitem); // insert new item lvitem.mask = LVIF_TEXT; lvitem.iItem = iActualItem; lvitem.iSubItem = 1; strncpy (buf, strDes, 100); lvitem.pszText = buf; m_ctrlVariant.SetItem(&lvitem); } } void CSelectVariantDlg::OnClickVarlist(NMHDR* pNMHDR, LRESULT* pResult) { CPoint point; GetCursorPos(&point); m_ctrlVariant.ScreenToClient(&point); LVHITTESTINFO lvHTI; lvHTI.pt.x = point.x; lvHTI.pt.y = point.y; m_ctrlVariant.SubItemHitTest(&lvHTI); int m_nItem = lvHTI.iItem; //行号 char var[100]; m_ctrlVariant.GetItemText(m_nItem, 0, var, 100); m_strVar = var; *pResult = 0; } void CSelectVariantDlg::OnNMDblclkVarlist(NMHDR *pNMHDR, LRESULT *pResult) { int iListCount = m_ctrlVariant.GetItemCount(); POSITION pos = m_ctrlVariant.GetFirstSelectedItemPosition(); int nListSel = m_ctrlVariant.GetNextSelectedItem(pos); if(nListSel>=iListCount || nListSel==-1) { //MessageBox(g_strDClickFirstOperate, g_strTip, MB_ICONWARNING); return; } m_strVar = m_ctrlVariant.GetItemText( nListSel,0 ); OnOK(); *pResult = 0; } void CSelectVariantDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 OnOK(); } void CSelectVariantDlg::OnEnChangeEdtDevName() { // TODO: 如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,除非重写 CDialog::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 CString strDevName, strVarName; m_ctrlDevName.GetWindowText(strDevName); m_ctrlVarName.GetWindowText(strVarName); ChangeVariantList(strDevName, strVarName); } void CSelectVariantDlg::OnEnChangeEdtVarName() { // TODO: 如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,除非重写 CDialog::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 CString strDevName, strVarName; m_ctrlDevName.GetWindowText(strDevName); m_ctrlVarName.GetWindowText(strVarName); ChangeVariantList(strDevName, strVarName); } ///////////////////////////////////////////////////////////////////////////// // CFormatEditDlg dialog CFormatEditDlg::CFormatEditDlg(CWnd* pParent /*=NULL*/) : CDialog(CFormatEditDlg::IDD, pParent) { //{{AFX_DATA_INIT(CFormatEditDlg) m_strFormat = _T(""); //}}AFX_DATA_INIT } void CFormatEditDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFormatEditDlg) DDX_Text(pDX, IDC_FORMAT, m_strFormat); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFormatEditDlg, CDialog) //{{AFX_MSG_MAP(CFormatEditDlg) ON_BN_CLICKED(IDC_AI, OnAi) ON_BN_CLICKED(IDC_DI, OnDi) ON_BN_CLICKED(IDC_ADD, OnAdd) ON_BN_CLICKED(IDC_SUB, OnSub) ON_BN_CLICKED(IDC_MULTI, OnMulti) ON_BN_CLICKED(IDC_DIV, OnDiv) ON_BN_CLICKED(IDC_NOT, OnNot) ON_BN_CLICKED(IDC_AND, OnAnd) ON_BN_CLICKED(IDC_OR, OnOr) ON_BN_CLICKED(IDC_LEFTKUO, OnLeftkuo) ON_BN_CLICKED(IDC_RIGHTKUO, OnRightkuo) ON_BN_CLICKED(IDC_SEL0, OnSel0) ON_BN_CLICKED(IDC_SEL1, OnSel1) ON_BN_CLICKED(IDC_SEL2, OnSel2) ON_BN_CLICKED(IDC_SEL3, OnSel3) ON_BN_CLICKED(IDC_SEL4, OnSel4) ON_BN_CLICKED(IDC_SEL5, OnSel5) ON_BN_CLICKED(IDC_SEL6, OnSel6) ON_BN_CLICKED(IDC_SEL7, OnSel7) ON_BN_CLICKED(IDC_SEL8, OnSel8) ON_BN_CLICKED(IDC_SEL9, OnSel9) ON_BN_CLICKED(IDC_SELPOINT, OnSelpoint) ON_BN_CLICKED(IDC_MORE, OnMore) ON_BN_CLICKED(IDC_LESS, OnLess) ON_BN_CLICKED(IDC_LESSEQUAL, OnLessequal) ON_BN_CLICKED(IDC_MOREEQUAL, OnMoreequal) ON_BN_CLICKED(IDC_EQUAL, OnEqual) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFormatEditDlg message handlers void CFormatEditDlg::OnAi() { UpdateData(TRUE); CSelectVariantDlg dlg; dlg.m_nShowVarType = 1; if ( dlg.DoModal() == IDOK ) { m_strFormat = m_strFormat + dlg.m_strVar; UpdateData(false); } } void CFormatEditDlg::OnDi() { UpdateData(TRUE); CSelectVariantDlg dlg; dlg.m_nShowVarType = 2; if ( dlg.DoModal() == IDOK ) { m_strFormat = m_strFormat + dlg.m_strVar; UpdateData(false); } } void CFormatEditDlg::OnAdd() { UpdateData(TRUE); m_strFormat = m_strFormat + "+"; UpdateData(false); } void CFormatEditDlg::OnSub() { UpdateData(TRUE); m_strFormat = m_strFormat + "-"; UpdateData(false); } void CFormatEditDlg::OnMulti() { UpdateData(TRUE); m_strFormat = m_strFormat + "*"; UpdateData(false); } void CFormatEditDlg::OnDiv() { UpdateData(TRUE); m_strFormat = m_strFormat + "/"; UpdateData(false); } void CFormatEditDlg::OnNot() { UpdateData(TRUE); m_strFormat = m_strFormat + "NOT"; UpdateData(false); } void CFormatEditDlg::OnAnd() { UpdateData(TRUE); m_strFormat = m_strFormat + "AND"; UpdateData(false); } void CFormatEditDlg::OnOr() { UpdateData(TRUE); m_strFormat = m_strFormat + "OR"; UpdateData(false); } void CFormatEditDlg::OnLeftkuo() { UpdateData(TRUE); m_strFormat = m_strFormat + "("; UpdateData(false); } void CFormatEditDlg::OnRightkuo() { UpdateData(TRUE); m_strFormat = m_strFormat + ")"; UpdateData(false); } void CFormatEditDlg::OnSel0() { UpdateData(TRUE); m_strFormat = m_strFormat + "0"; UpdateData(false); } void CFormatEditDlg::OnSel1() { UpdateData(TRUE); m_strFormat = m_strFormat + "1"; UpdateData(false); } void CFormatEditDlg::OnSel2() { UpdateData(TRUE); m_strFormat = m_strFormat + "2"; UpdateData(false); } void CFormatEditDlg::OnSel3() { UpdateData(TRUE); m_strFormat = m_strFormat + "3"; UpdateData(false); } void CFormatEditDlg::OnSel4() { UpdateData(TRUE); m_strFormat = m_strFormat + "4"; UpdateData(false); } void CFormatEditDlg::OnSel5() { UpdateData(TRUE); m_strFormat = m_strFormat + "5"; UpdateData(false); } void CFormatEditDlg::OnSel6() { UpdateData(TRUE); m_strFormat = m_strFormat + "6"; UpdateData(false); } void CFormatEditDlg::OnSel7() { UpdateData(TRUE); m_strFormat = m_strFormat + "7"; UpdateData(false); } void CFormatEditDlg::OnSel8() { UpdateData(TRUE); m_strFormat = m_strFormat + "8"; UpdateData(false); } void CFormatEditDlg::OnSel9() { UpdateData(TRUE); m_strFormat = m_strFormat + "9"; UpdateData(false); } void CFormatEditDlg::OnSelpoint() //modify by 2012.06.01 { #if 1 UpdateData(TRUE); m_strFormat = m_strFormat + "!="; UpdateData(false); #else UpdateData(TRUE); m_strFormat = m_strFormat + "."; UpdateData(false); #endif } void CFormatEditDlg::OnOK() { CDialog::OnOK(); } void CFormatEditDlg::OnCancel() { CDialog::OnCancel(); } void CFormatEditDlg::OnMore() { UpdateData(TRUE); m_strFormat = m_strFormat + ">"; UpdateData(false); } void CFormatEditDlg::OnLess() { UpdateData(TRUE); m_strFormat = m_strFormat + "<"; UpdateData(false); } void CFormatEditDlg::OnLessequal() { UpdateData(TRUE); m_strFormat = m_strFormat + "<="; UpdateData(false); } void CFormatEditDlg::OnMoreequal() { UpdateData(TRUE); m_strFormat = m_strFormat + ">="; UpdateData(false); } void CFormatEditDlg::OnEqual() { UpdateData(TRUE); m_strFormat = m_strFormat + "=="; UpdateData(false); }