selectvariantdlg.cpp 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. // SelectVariantDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "IDE.h"
  5. #include "SelectVariantDlg.h"
  6. #include ".\selectvariantdlg.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CSelectVariantDlg dialog
  14. CSelectVariantDlg::CSelectVariantDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CSelectVariantDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CSelectVariantDlg)
  18. // NOTE: the ClassWizard will add member initialization here
  19. //}}AFX_DATA_INIT
  20. m_bChk_Dim = false;
  21. m_nShowVarType = 0;
  22. }
  23. void CSelectVariantDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CSelectVariantDlg)
  27. DDX_Control(pDX, IDC_VARLIST, m_ctrlVariant);
  28. //}}AFX_DATA_MAP
  29. DDX_Control(pDX, IDC_EDT_DEV_NAME, m_ctrlDevName);
  30. DDX_Control(pDX, IDC_EDT_VAR_NAME, m_ctrlVarName);
  31. DDX_Check(pDX, IDC_CHECK_DIM, (int &)m_bChk_Dim);
  32. }
  33. BEGIN_MESSAGE_MAP(CSelectVariantDlg, CDialog)
  34. //{{AFX_MSG_MAP(CSelectVariantDlg)
  35. ON_NOTIFY(NM_CLICK, IDC_VARLIST, OnClickVarlist)
  36. ON_NOTIFY(NM_DBLCLK, IDC_VARLIST, OnNMDblclkVarlist)
  37. //}}AFX_MSG_MAP
  38. ON_BN_CLICKED(IDOK, OnBnClickedOk)
  39. ON_EN_CHANGE(IDC_EDT_DEV_NAME, OnEnChangeEdtDevName)
  40. ON_EN_CHANGE(IDC_EDT_VAR_NAME, OnEnChangeEdtVarName)
  41. END_MESSAGE_MAP()
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CSelectVariantDlg message handlers
  44. BOOL CSelectVariantDlg::OnInitDialog()
  45. {
  46. CDialog::OnInitDialog();
  47. CString strVar=g_strStrVar;
  48. CString strDes=g_strDes;
  49. m_ctrlVariant.InsertColumn(0, strVar, LVCFMT_LEFT, 200, 0);
  50. m_ctrlVariant.InsertColumn(1, strDes, LVCFMT_LEFT, 200 ,1);
  51. ChangeVariantList("", "");
  52. ((CButton *)GetDlgItem(IDC_CHECK_DIM))->SetCheck( true );
  53. return TRUE;
  54. }
  55. void CSelectVariantDlg::OnOK()
  56. {
  57. CDialog::OnOK();
  58. }
  59. void CSelectVariantDlg::ChangeVariantList(CString strDevName, CString strVarName)
  60. {
  61. UpdateData();
  62. CString strVar, strDes;
  63. TCHAR buf[200];
  64. LV_ITEM lvitem;
  65. int iActualItem;
  66. m_ctrlVariant.DeleteAllItems();
  67. int nVarType=1;
  68. int nLowerValue=0,nUpperValue=0;
  69. int size = pVariantsManager->m_analog.GetSize();
  70. for ( int i = 0; i < size; i++)
  71. {
  72. CAnalog* pAnalog = pVariantsManager->m_analog.GetAt(i);
  73. if( pAnalog==NULL )
  74. return;
  75. strVar = pAnalog->m_strName;
  76. strDes = pAnalog->m_strDesc;
  77. nLowerValue = pAnalog->m_nLowerLimit;
  78. nUpperValue = pAnalog->m_nUpperLimit;
  79. if( nLowerValue==nUpperValue && nLowerValue==0 )
  80. nVarType = 2;
  81. else
  82. nVarType = 1;
  83. if( m_nShowVarType!=0 && m_nShowVarType!=nVarType )
  84. continue;
  85. //if( strDevName.Compare("") && -1==pAnalog->m_pDevice->m_strName.Find(strDevName) ) continue;
  86. CString sTempVarName,sTempVar;
  87. sTempVarName = strVarName;
  88. sTempVar = strVar;
  89. sTempVarName = sTempVarName.MakeLower();
  90. sTempVar = sTempVar.MakeLower();
  91. if( !m_bChk_Dim )
  92. {
  93. if( sTempVarName.Compare("") && 0!=sTempVar.Find(sTempVarName) )
  94. continue;
  95. }
  96. else
  97. {
  98. if( sTempVarName.Compare("") && -1==sTempVar.Find(sTempVarName) )
  99. continue;
  100. }
  101. lvitem.mask = LVIF_TEXT;
  102. lvitem.iItem = i ;
  103. lvitem.iSubItem = 0;
  104. strncpy (buf, strVar, 100);
  105. lvitem.pszText = buf;
  106. iActualItem = m_ctrlVariant.InsertItem(&lvitem); // insert new item
  107. lvitem.mask = LVIF_TEXT;
  108. lvitem.iItem = iActualItem;
  109. lvitem.iSubItem = 1;
  110. strncpy (buf, strDes, 100);
  111. lvitem.pszText = buf;
  112. m_ctrlVariant.SetItem(&lvitem);
  113. }
  114. }
  115. void CSelectVariantDlg::OnClickVarlist(NMHDR* pNMHDR, LRESULT* pResult)
  116. {
  117. CPoint point;
  118. GetCursorPos(&point);
  119. m_ctrlVariant.ScreenToClient(&point);
  120. LVHITTESTINFO lvHTI;
  121. lvHTI.pt.x = point.x;
  122. lvHTI.pt.y = point.y;
  123. m_ctrlVariant.SubItemHitTest(&lvHTI);
  124. int m_nItem = lvHTI.iItem; //行号
  125. char var[100];
  126. m_ctrlVariant.GetItemText(m_nItem, 0, var, 100);
  127. m_strVar = var;
  128. *pResult = 0;
  129. }
  130. void CSelectVariantDlg::OnNMDblclkVarlist(NMHDR *pNMHDR, LRESULT *pResult)
  131. {
  132. int iListCount = m_ctrlVariant.GetItemCount();
  133. POSITION pos = m_ctrlVariant.GetFirstSelectedItemPosition();
  134. int nListSel = m_ctrlVariant.GetNextSelectedItem(pos);
  135. if(nListSel>=iListCount || nListSel==-1)
  136. {
  137. //MessageBox(g_strDClickFirstOperate, g_strTip, MB_ICONWARNING);
  138. return;
  139. }
  140. m_strVar = m_ctrlVariant.GetItemText( nListSel,0 );
  141. OnOK();
  142. *pResult = 0;
  143. }
  144. void CSelectVariantDlg::OnBnClickedOk()
  145. {
  146. // TODO: 在此添加控件通知处理程序代码
  147. OnOK();
  148. }
  149. void CSelectVariantDlg::OnEnChangeEdtDevName()
  150. {
  151. // TODO: 如果该控件是 RICHEDIT 控件,则它将不会
  152. // 发送该通知,除非重写 CDialog::OnInitDialog()
  153. // 函数并调用 CRichEditCtrl().SetEventMask(),
  154. // 同时将 ENM_CHANGE 标志“或”运算到掩码中。
  155. // TODO: 在此添加控件通知处理程序代码
  156. CString strDevName, strVarName;
  157. m_ctrlDevName.GetWindowText(strDevName);
  158. m_ctrlVarName.GetWindowText(strVarName);
  159. ChangeVariantList(strDevName, strVarName);
  160. }
  161. void CSelectVariantDlg::OnEnChangeEdtVarName()
  162. {
  163. // TODO: 如果该控件是 RICHEDIT 控件,则它将不会
  164. // 发送该通知,除非重写 CDialog::OnInitDialog()
  165. // 函数并调用 CRichEditCtrl().SetEventMask(),
  166. // 同时将 ENM_CHANGE 标志“或”运算到掩码中。
  167. // TODO: 在此添加控件通知处理程序代码
  168. CString strDevName, strVarName;
  169. m_ctrlDevName.GetWindowText(strDevName);
  170. m_ctrlVarName.GetWindowText(strVarName);
  171. ChangeVariantList(strDevName, strVarName);
  172. }
  173. /////////////////////////////////////////////////////////////////////////////
  174. // CFormatEditDlg dialog
  175. CFormatEditDlg::CFormatEditDlg(CWnd* pParent /*=NULL*/)
  176. : CDialog(CFormatEditDlg::IDD, pParent)
  177. {
  178. //{{AFX_DATA_INIT(CFormatEditDlg)
  179. m_strFormat = _T("");
  180. //}}AFX_DATA_INIT
  181. }
  182. void CFormatEditDlg::DoDataExchange(CDataExchange* pDX)
  183. {
  184. CDialog::DoDataExchange(pDX);
  185. //{{AFX_DATA_MAP(CFormatEditDlg)
  186. DDX_Text(pDX, IDC_FORMAT, m_strFormat);
  187. //}}AFX_DATA_MAP
  188. }
  189. BEGIN_MESSAGE_MAP(CFormatEditDlg, CDialog)
  190. //{{AFX_MSG_MAP(CFormatEditDlg)
  191. ON_BN_CLICKED(IDC_AI, OnAi)
  192. ON_BN_CLICKED(IDC_DI, OnDi)
  193. ON_BN_CLICKED(IDC_ADD, OnAdd)
  194. ON_BN_CLICKED(IDC_SUB, OnSub)
  195. ON_BN_CLICKED(IDC_MULTI, OnMulti)
  196. ON_BN_CLICKED(IDC_DIV, OnDiv)
  197. ON_BN_CLICKED(IDC_NOT, OnNot)
  198. ON_BN_CLICKED(IDC_AND, OnAnd)
  199. ON_BN_CLICKED(IDC_OR, OnOr)
  200. ON_BN_CLICKED(IDC_LEFTKUO, OnLeftkuo)
  201. ON_BN_CLICKED(IDC_RIGHTKUO, OnRightkuo)
  202. ON_BN_CLICKED(IDC_SEL0, OnSel0)
  203. ON_BN_CLICKED(IDC_SEL1, OnSel1)
  204. ON_BN_CLICKED(IDC_SEL2, OnSel2)
  205. ON_BN_CLICKED(IDC_SEL3, OnSel3)
  206. ON_BN_CLICKED(IDC_SEL4, OnSel4)
  207. ON_BN_CLICKED(IDC_SEL5, OnSel5)
  208. ON_BN_CLICKED(IDC_SEL6, OnSel6)
  209. ON_BN_CLICKED(IDC_SEL7, OnSel7)
  210. ON_BN_CLICKED(IDC_SEL8, OnSel8)
  211. ON_BN_CLICKED(IDC_SEL9, OnSel9)
  212. ON_BN_CLICKED(IDC_SELPOINT, OnSelpoint)
  213. ON_BN_CLICKED(IDC_MORE, OnMore)
  214. ON_BN_CLICKED(IDC_LESS, OnLess)
  215. ON_BN_CLICKED(IDC_LESSEQUAL, OnLessequal)
  216. ON_BN_CLICKED(IDC_MOREEQUAL, OnMoreequal)
  217. ON_BN_CLICKED(IDC_EQUAL, OnEqual)
  218. //}}AFX_MSG_MAP
  219. END_MESSAGE_MAP()
  220. /////////////////////////////////////////////////////////////////////////////
  221. // CFormatEditDlg message handlers
  222. void CFormatEditDlg::OnAi()
  223. {
  224. UpdateData(TRUE);
  225. CSelectVariantDlg dlg;
  226. dlg.m_nShowVarType = 1;
  227. if ( dlg.DoModal() == IDOK )
  228. {
  229. m_strFormat = m_strFormat + dlg.m_strVar;
  230. UpdateData(false);
  231. }
  232. }
  233. void CFormatEditDlg::OnDi()
  234. {
  235. UpdateData(TRUE);
  236. CSelectVariantDlg dlg;
  237. dlg.m_nShowVarType = 2;
  238. if ( dlg.DoModal() == IDOK )
  239. {
  240. m_strFormat = m_strFormat + dlg.m_strVar;
  241. UpdateData(false);
  242. }
  243. }
  244. void CFormatEditDlg::OnAdd()
  245. {
  246. UpdateData(TRUE);
  247. m_strFormat = m_strFormat + "+";
  248. UpdateData(false);
  249. }
  250. void CFormatEditDlg::OnSub()
  251. {
  252. UpdateData(TRUE);
  253. m_strFormat = m_strFormat + "-";
  254. UpdateData(false);
  255. }
  256. void CFormatEditDlg::OnMulti()
  257. {
  258. UpdateData(TRUE);
  259. m_strFormat = m_strFormat + "*";
  260. UpdateData(false);
  261. }
  262. void CFormatEditDlg::OnDiv()
  263. {
  264. UpdateData(TRUE);
  265. m_strFormat = m_strFormat + "/";
  266. UpdateData(false);
  267. }
  268. void CFormatEditDlg::OnNot()
  269. {
  270. UpdateData(TRUE);
  271. m_strFormat = m_strFormat + "NOT";
  272. UpdateData(false);
  273. }
  274. void CFormatEditDlg::OnAnd()
  275. {
  276. UpdateData(TRUE);
  277. m_strFormat = m_strFormat + "AND";
  278. UpdateData(false);
  279. }
  280. void CFormatEditDlg::OnOr()
  281. {
  282. UpdateData(TRUE);
  283. m_strFormat = m_strFormat + "OR";
  284. UpdateData(false);
  285. }
  286. void CFormatEditDlg::OnLeftkuo()
  287. {
  288. UpdateData(TRUE);
  289. m_strFormat = m_strFormat + "(";
  290. UpdateData(false);
  291. }
  292. void CFormatEditDlg::OnRightkuo()
  293. {
  294. UpdateData(TRUE);
  295. m_strFormat = m_strFormat + ")";
  296. UpdateData(false);
  297. }
  298. void CFormatEditDlg::OnSel0()
  299. {
  300. UpdateData(TRUE);
  301. m_strFormat = m_strFormat + "0";
  302. UpdateData(false);
  303. }
  304. void CFormatEditDlg::OnSel1()
  305. {
  306. UpdateData(TRUE);
  307. m_strFormat = m_strFormat + "1";
  308. UpdateData(false);
  309. }
  310. void CFormatEditDlg::OnSel2()
  311. {
  312. UpdateData(TRUE);
  313. m_strFormat = m_strFormat + "2";
  314. UpdateData(false);
  315. }
  316. void CFormatEditDlg::OnSel3()
  317. {
  318. UpdateData(TRUE);
  319. m_strFormat = m_strFormat + "3";
  320. UpdateData(false);
  321. }
  322. void CFormatEditDlg::OnSel4()
  323. {
  324. UpdateData(TRUE);
  325. m_strFormat = m_strFormat + "4";
  326. UpdateData(false);
  327. }
  328. void CFormatEditDlg::OnSel5()
  329. {
  330. UpdateData(TRUE);
  331. m_strFormat = m_strFormat + "5";
  332. UpdateData(false);
  333. }
  334. void CFormatEditDlg::OnSel6()
  335. {
  336. UpdateData(TRUE);
  337. m_strFormat = m_strFormat + "6";
  338. UpdateData(false);
  339. }
  340. void CFormatEditDlg::OnSel7()
  341. {
  342. UpdateData(TRUE);
  343. m_strFormat = m_strFormat + "7";
  344. UpdateData(false);
  345. }
  346. void CFormatEditDlg::OnSel8()
  347. {
  348. UpdateData(TRUE);
  349. m_strFormat = m_strFormat + "8";
  350. UpdateData(false);
  351. }
  352. void CFormatEditDlg::OnSel9()
  353. {
  354. UpdateData(TRUE);
  355. m_strFormat = m_strFormat + "9";
  356. UpdateData(false);
  357. }
  358. void CFormatEditDlg::OnSelpoint() //modify by 2012.06.01
  359. {
  360. #if 1
  361. UpdateData(TRUE);
  362. m_strFormat = m_strFormat + "!=";
  363. UpdateData(false);
  364. #else
  365. UpdateData(TRUE);
  366. m_strFormat = m_strFormat + ".";
  367. UpdateData(false);
  368. #endif
  369. }
  370. void CFormatEditDlg::OnOK()
  371. {
  372. CDialog::OnOK();
  373. }
  374. void CFormatEditDlg::OnCancel()
  375. {
  376. CDialog::OnCancel();
  377. }
  378. void CFormatEditDlg::OnMore()
  379. {
  380. UpdateData(TRUE);
  381. m_strFormat = m_strFormat + ">";
  382. UpdateData(false);
  383. }
  384. void CFormatEditDlg::OnLess()
  385. {
  386. UpdateData(TRUE);
  387. m_strFormat = m_strFormat + "<";
  388. UpdateData(false);
  389. }
  390. void CFormatEditDlg::OnLessequal()
  391. {
  392. UpdateData(TRUE);
  393. m_strFormat = m_strFormat + "<=";
  394. UpdateData(false);
  395. }
  396. void CFormatEditDlg::OnMoreequal()
  397. {
  398. UpdateData(TRUE);
  399. m_strFormat = m_strFormat + ">=";
  400. UpdateData(false);
  401. }
  402. void CFormatEditDlg::OnEqual()
  403. {
  404. UpdateData(TRUE);
  405. m_strFormat = m_strFormat + "==";
  406. UpdateData(false);
  407. }