YKData.cpp
上传用户:asikq0571
上传日期:2014-07-12
资源大小:528k
文件大小:3k
源码类别:

Internet/IE编程

开发平台:

Visual C++

  1. // YKData.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Peugeot.h"
  5. #include "YKData.h"
  6. #include "MainFrm.h"
  7. #include "PeugeotDoc.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CYKData dialog
  15. IMPLEMENT_DYNCREATE(CYKData, CDialog)
  16. CYKData::CYKData(CWnd* pParent /*=NULL*/)
  17. : CDialog(CYKData::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(CYKData)
  20. m_YKSelect = -1;
  21. m_YKExecute = -1;
  22. //}}AFX_DATA_INIT
  23. // m_pYKGridCtrl = NULL;
  24. }
  25. void CYKData::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(CYKData)
  29. DDX_Radio(pDX, IDC_YK_S_ACK, m_YKSelect);
  30. DDX_Radio(pDX, IDC_YK_E_ACK, m_YKExecute);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CYKData, CDialog)
  34. //{{AFX_MSG_MAP(CYKData)
  35. ON_BN_CLICKED(IDC_YK_E_ACK, OnYKEAck)
  36. ON_BN_CLICKED(IDC_YK_E_NAK, OnYKENak)
  37. ON_BN_CLICKED(IDC_YK_S_ACK, OnYKSAck)
  38. ON_BN_CLICKED(IDC_YK_S_NAK, OnYKSNak)
  39. //}}AFX_MSG_MAP
  40. END_MESSAGE_MAP()
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CYKData message handlers
  43. BOOL CYKData::OnInitDialog() 
  44. {
  45. CDialog::OnInitDialog();
  46. // TODO: Add extra initialization here
  47. /*
  48. if (m_pYKGridCtrl == NULL)
  49. {
  50. //创建m_pDoc->m_pYXGridCtrl对象
  51.         m_pYKGridCtrl = new CGridCtrl;
  52. // m_pYXGridCtrl->m_hGridOwner=m_hGridOwner;
  53. if (!m_pYKGridCtrl) 
  54. {
  55.     AfxMessageBox("创建遥信表格失败");
  56. return false;
  57. }
  58. // 创建m_pDoc->m_pYXGridCtrl对象窗体
  59. CRect rect,TempRect;
  60. GetClientRect(TempRect);
  61. rect=TempRect;
  62. rect.left=TempRect.left+20;
  63. rect.top=TempRect.top+30;
  64. rect.bottom=TempRect.bottom-71;
  65. rect.right=TempRect.right-20;
  66. m_pYKGridCtrl->Create(rect, this, 100);
  67. // 初始化m_pDoc->m_pYXGridCtrl对象设置
  68. // m_pYXGridCtrl->m_wParam=1; //标志是遥信表格
  69. //        m_pYXGridCtrl->m_bIsOpen=TRUE;
  70. m_pYKGridCtrl->SetEditable(TRUE);
  71. m_pYKGridCtrl->EnableDragAndDrop(TRUE);
  72. // TODO: Add extra initialization here
  73. }
  74. */
  75. return TRUE;  // return TRUE unless you set the focus to a control
  76.               // EXCEPTION: OCX Property Pages should return FALSE
  77. }
  78. void CYKData::OnYKEAck() 
  79. {
  80.    UpdateYKChara(TRUE);
  81. }
  82. void CYKData::OnYKENak() 
  83. {
  84.    UpdateYKChara(TRUE);
  85. }
  86. void CYKData::OnYKSAck() 
  87. {
  88.    UpdateYKChara(TRUE);
  89. }
  90. void CYKData::OnYKSNak() 
  91. {
  92.    UpdateYKChara(TRUE);
  93. }
  94. void CYKData::UpdateYKChara(BOOL bSave)
  95. {
  96.    CMainFrame* pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;           //框架窗口指针;
  97.    CPeugeotDoc* pDoc      = (CPeugeotDoc*) pMainFrame->GetActiveDocument(); //文档指针
  98.    ASSERT_VALID(pDoc);
  99.    if (bSave)
  100.    {
  101.        UpdateData(TRUE);
  102.    if (m_YKSelect == 0)
  103.    pDoc->m_PrtIEC101.m_YKChara = pDoc->m_PrtIEC101.m_YKChara & 0xfd; //确认应答
  104.    else
  105.        pDoc->m_PrtIEC101.m_YKChara = pDoc->m_PrtIEC101.m_YKChara | 0x02; //否定应答
  106.        if (m_YKExecute == 0)
  107.    pDoc->m_PrtIEC101.m_YKChara = pDoc->m_PrtIEC101.m_YKChara & 0xfb; //确认应答
  108.    else
  109.        pDoc->m_PrtIEC101.m_YKChara = pDoc->m_PrtIEC101.m_YKChara | 0x04; //否定应答
  110.    }
  111.    else
  112.    {
  113.    m_YKSelect  = (pDoc->m_PrtIEC101.m_YKChara & 0x02) >> 1;
  114.    m_YKExecute = (pDoc->m_PrtIEC101.m_YKChara & 0x04) >> 2;
  115.        UpdateData(FALSE);
  116.    }
  117. }