selectvariantdlg.cpp 9.1 KB

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