SiteDlg.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // SiteDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "autoupdate.h"
  5. #include "SiteDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CSiteDlg dialog
  13. CSiteDlg::CSiteDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CSiteDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CSiteDlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. site_list = NULL;
  20. nStart = 0;
  21. }
  22. void CSiteDlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CSiteDlg)
  26. DDX_Control(pDX, IDC_SITELIST, m_SiteList);
  27. //}}AFX_DATA_MAP
  28. }
  29. BEGIN_MESSAGE_MAP(CSiteDlg, CDialog)
  30. //{{AFX_MSG_MAP(CSiteDlg)
  31. ON_NOTIFY(LVN_ITEMCHANGED, IDC_SITELIST, OnItemchangedSitelist)
  32. //}}AFX_MSG_MAP
  33. END_MESSAGE_MAP()
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CSiteDlg message handlers
  36. BOOL CSiteDlg::OnInitDialog() 
  37. {
  38. CDialog::OnInitDialog();
  39. ListView_SetExtendedListViewStyle(m_SiteList.m_hWnd, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
  40. m_SiteList.InsertColumn(0, "", LVCFMT_LEFT, 200);
  41. char site_name[32];
  42. if(!site_list) return TRUE;
  43. for(int i = 0; i < site_list->GetSize(); i++) {
  44. // m_SiteList.InsertItem(0, "石家庄服务器");
  45. // m_SiteList.InsertItem(0, "石家庄服务器");
  46. // m_SiteList.InsertItem(0, (*site_list)[i]);
  47. sprintf(site_name, "自动升级站点%d", i + 1);
  48. m_SiteList.InsertItem(i, site_name);
  49. }
  50. m_SiteList.SetCheck(nStart, TRUE);
  51. return TRUE;  // return TRUE unless you set the focus to a control
  52.               // EXCEPTION: OCX Property Pages should return FALSE
  53. }
  54. void CSiteDlg::OnItemchangedSitelist(NMHDR* pNMHDR, LRESULT* pResult) 
  55. {
  56. NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
  57. /* If the event is not fired because of any change in individual items then the oldstate and 
  58.  newstate members of pNMListView are not used.  So check for that.*/
  59.  if (!pNMListView->uOldState && !pNMListView->uNewState)
  60.   return;
  61.  // m_listctl is the member variable of the dialog which is of type CListCtl.
  62.  BOOL bChecked = ListView_GetCheckState(m_SiteList.m_hWnd, pNMListView->iItem);
  63.  // if it's checked uncheck everything else.
  64.  int nCount;
  65.  if (bChecked)
  66.   for(nCount=0; nCount<m_SiteList.GetItemCount();nCount++)
  67.    if(nCount != pNMListView->iItem)
  68.     m_SiteList.SetCheck(nCount, FALSE);
  69.    else 
  70.    nStart = nCount;
  71. // TODO: Add your control notification handler code here
  72. *pResult = 0;
  73. }