设为首页 加入收藏

TOP

1.4.2 具体编码(2)
2013-10-07 15:52:39 来源: 作者: 【 】 浏览:76
Tags:1.4.2 具体 编码

1.4.2  具体编码(2)

(7) 编写对话框初始化函数OnInitDialog(),具体代码如下:

  1. BOOL CIpmonDlg::OnInitDialog()  
  2. {  
  3. CDialog::OnInitDialog();  
  4. // IDM_ABOUTBOX must be in the system command range.  
  5. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);  
  6. ASSERT(IDM_ABOUTBOX < 0xF000);  
  7. CMenu *pSysMenu = GetSystemMenu(FALSE);  
  8. if (pSysMenu != NULL)  
  9. {  
  10. CString strAboutMenu;  
  11. strAboutMenu.LoadString(IDS_ABOUTBOX);  
  12. if (!strAboutMenu.IsEmpty())  
  13. {  
  14. pSysMenu->AppendMenu(MF_SEPARATOR);  
  15. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);  
  16. }  
  17. }  
  18. SetIcon(m_hIcon, TRUE);   
  19. SetIcon(m_hIcon, FALSE);      
  20. CHAR        szHostName[128] = {0};  
  21. HOSTENT     *pHost = NULL;  
  22. CHAR    *pszIp = NULL;  
  23. int     iNum = 0;  
  24. if(AfxSocketInit(NULL)==FALSE)  
  25. {  
  26. AfxMessageBox("Sorry, socket load error!");  
  27. return FALSE;  
  28. }  
  29. if(gethostname(szHostName, 128)==0)  
  30. {  
  31. pHost = gethostbyname(szHostName);  
  32. if(pHost != NULL)  
  33. {  
  34. pszIp = inet_ntoa(*(in_addr*)pHost->h_addr_list[iNum]);  
  35. m_ipsource = inet_addr(pszIp);  
  36. }  
  37. else AfxMessageBox("pHost = NULL!");  
  38. }  
  39. else AfxMessageBox("can't find host name!");  
  40. DWORD dwStyle = GetWindowLong(m_ctrList.GetSafeHwnd(), GWL_STYLE);  
  41. dwStyle &= ~LVS_TYPEMASK;  
  42. dwStyle |= LVS_REPORT;  
  43. SetWindowLong(m_ctrList.GetSafeHwnd(), GWL_STYLE, dwStyle);  
  44. m_ctrList.InsertColumn(0, "数据", LVCFMT_LEFT, 525);  
  45. m_ctrList.InsertColumn(0, "大小", LVCFMT_LEFT, 80);  
  46. m_ctrList.InsertColumn(0, "端口", LVCFMT_LEFT, 40);  
  47. m_ctrList.InsertColumn(0, "目的地址", LVCFMT_LEFT, 100);  
  48. m_ctrList.InsertColumn(0, "端口", LVCFMT_LEFT, 40);  
  49. m_ctrList.InsertColumn(0, "源地址", LVCFMT_LEFT, 100);  
  50. m_ctrList.InsertColumn(0, "协议", LVCFMT_LEFT, 50);  
  51.  
  52. ::SendMessage(m_ctrList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,  
  53. LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);  
  54. DWORD dwSize = 0;  
  55. GetIpAddrTable(NULL, &dwSize, FALSE);  
  56. PMIB_IPADDRTABLE pIpAddrTable = (PMIB_IPADDRTABLE)new BYTE [dwSize];   
  57. if(pIpAddrTable)  
  58. {  
  59. if(GetIpAddrTable(  
  60. (PMIB_IPADDRTABLE)pIpAddrTable,   // IP表缓冲区  
  61. &dwSize,                // 缓冲区大小  
  62. FALSE                  // 根据IP地址排序  
  63. ) == NO_ERROR)  
  64. {  
  65. if(pIpAddrTable->dwNumEntries > 2)   
  66. // Second is MS TCP loopback IP (127.0.0.1)  
  67. {  
  68. m_Multihomed = TRUE ;  
  69. char szIP[16];  
  70. for(int i=0; i<(int)pIpAddrTable->dwNumEntries; i++)  
  71. {  
  72. in_addr ina;  
  73. ina.S_un.S_addr = pIpAddrTable->table[i].dwAddr;  
  74. char *pIP = inet_ntoa(ina);  
  75. strcpy(szIP, pIP);  
  76. if(stricmp(szIP, "127.0.0.1"))  
  77. m_IPArr.Add(pIpAddrTable->table[i].dwAddr);  
  78. }  
  79. }  
  80. }  
  81. delete []pIpAddrTable;  
  82. }  
  83. return TRUE;    
  84. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.4.2 具体编码(1) 下一篇1.4.2 具体编码(3)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)