设为首页 加入收藏

TOP

1.2.3 小试牛刀--编程实现获取计算机的IP地址和计算机名(1)
2013-10-07 15:53:14 来源: 作者: 【 】 浏览:86
Tags:1.2.3 小试牛刀 编程 实现 获取 计算机 地址

1.2.3  小试牛刀--编程(www.cppentry.com)实现获取计算机的IP地址和计算机名(1)

实例功能 获取当前计算机的IP地址和计算机名

源码路径 光盘\yuanma\1\IP

本实例的目的是,使用Visual C++(www.cppentry.com) 6.0开发一个获取当前机器的IP地址和计算机名的应用程序。

1. 设计MFC窗体

使用Visual C++(www.cppentry.com) 6.0创建一个MFC项目后,根据本实例的需要设计两个窗体,分别是IDD_ABOUTBOX窗体(见图1-12)和IDD_IPADDRESS_DIALOG窗体(见图1-13)。

 
图1-12  IDD_ABOUTBOX窗体
 
图1-13  IDD_IPADDRESS_DIALOG窗体

2. 具体编码

设计好窗体之后,接下来开始讲解具体编码过程。

(1) 在文件IPAddressDlg.cpp中实现初始化对话框,使用对话框形式显示获取的IP地址和计算机名。具体代码如下:

  1. BOOL CIPAddressDlg::OnInitDialog()  
  2. {  
  3. CDialog::OnInitDialog();  
  4. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);  
  5. ASSERT(IDM_ABOUTBOX < 0xF000);  
  6. CMenu *pSysMenu = GetSystemMenu(FALSE);  
  7. if (pSysMenu != NULL)  
  8. {  
  9. CString strAboutMenu;  
  10. strAboutMenu.LoadString(IDS_ABOUTBOX);  
  11. if (!strAboutMenu.IsEmpty())  
  12. {  
  13. pSysMenu->AppendMenu(MF_SEPARATOR);  
  14. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);  
  15. }  
  16. }  
  17. // 设置对话框图标  
  18. SetIcon(m_hIcon, TRUE);                     // 设置大图标  
  19. SetIcon(m_hIcon, FALSE);                        // 设置小图标  
  20. int nRetCode;  
  21.  
  22. nRetCode = StartUp();  
  23. TRACE1("StartUp RetCode: %d\n", nRetCode);  
  24. nRetCode = GetLocalHostName(m_sHostName);  
  25. TRACE1("GetLocalHostName RetCode: %d\n", nRetCode);  
  26. nRetCode = GetIPAddress(m_sHostName, m_sIPAddress);  
  27. TRACE1("GetIPAddress RetCode: %d\n", nRetCode);  
  28. nRetCode = CleanUp();  
  29. TRACE1("CleanUp RetCode: %d\n", nRetCode);  
  30. UpdateData(FALSE);  
  31. return TRUE;  
  32. }  
  33.  
  34. void CIPAddressDlg::OnSysCommand(UINT nID, LPARAM lParam)  
  35. {  
  36. if ((nID & 0xFFF0) == IDM_ABOUTBOX)  
  37. {  
  38. CAboutDlg dlgAbout;  
  39. dlgAbout.DoModal();  
  40. }  
  41. else  
  42. {  
  43. CDialog::OnSysCommand(nID, lParam);  
  44. }  
  45. }  
  46. void CIPAddressDlg::OnPaint()  
  47. {  
  48. if (IsIconic())  
  49. {  
  50. CPaintDC dc(this); // device context for painting  
  51.  
  52. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);  
  53. int cxIcon = GetSystemMetrics(SM_CXICON);  
  54. int cyIcon = GetSystemMetrics(SM_CYICON);  
  55. CRect rect;  
  56. GetClientRect(&rect);  
  57. int x = (rect.Width() - cxIcon + 1) / 2;  
  58. int y = (rect.Height() - cyIcon + 1) / 2;  
  59. dc.DrawIcon(x, y, m_hIcon);  
  60. }  
  61. else  
  62. {  
  63. CDialog::OnPaint();  
  64. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.2.2 开发准备(2) 下一篇1.2.3 小试牛刀--编程实现获取计..

评论

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

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)