Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116423
  • 博文数量: 43
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 530
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 16:56
文章分类

全部博文(43)

文章存档

2011年(1)

2010年(2)

2008年(40)

我的朋友

分类:

2008-09-23 16:39:33

vc中MFC的学习:
基础知识:
头文件:在每个头文件总有下面的预处理命令
#if _MSC_VER>1000
#pragma once
#endif//_MSC_VER>1000
作用:保证工程生成的是,类的头文件仅仅被编译一次
­
在类的实现文件总有。(cpp文件)
#include "stdafx.h"
。。。
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;//预定义宏命令被替换成当前文件名的一个字符串
#endif
­
对于每一个工程都有一个rc文件,这个文件是应用程序的资源文件
­
对话框:
在对话框中,对话框跟对话框的控件都是CWnd的派生类 对话框类是以CDialog作为基本类。
在类中,我们可以看到Dlg中基类是CDialog,以APP结尾的类是以CWinApp作为基类
CDialog类有四个基本的函数 OnInitDialog()、DoModel()、OnOk()、OnCancel()
在使用向导后注意查看消息映射,头文件以及相应的源文件,其中头文件包括对构造函数和虚函数,以及消息映射DECLARE_MESSAGE_MAP对函数的声明 其中通常会用到一个函数DoDataExchangge()用来完成数据跟对话框控件之间的交换 添加说明
不管创建哪种对话框,都应该在源文件中,引言其对应的头文件
­
在一个对话框工程中,除了头文件,源文件一般包括view文件,doc文件,以及另外一cpp文件
其中,view文件主要包括所以的处理函数  其他稍加了解就好了。
­
现在所做项目所用资源整理:
框架界面:发送网卡跟接收网卡的设置 cp所处的阶段的设置 以及利用标签空间对主从界面的设置
第一发送网卡跟接收网卡的设置
  应用combox来设置发送跟接收的网卡
网卡设备列表 定义一个结构体
typedef struct tagAdapterInfo          
{
char szDeviceName[128]; // 名字
char szIPAddrStr[16]; // IP
char szHWAddrStr[18]; // MAC
DWORD dwIndex;   // 编号
}INFO_ADAPTER, *PINFO_ADAPTER;
IANFO_DAPTER AdapterList[5];// 网卡列表,比如5个
­
// ADAPTER_INFO - per-adapter information. All IP addresses are stored as
// strings
­
typedef struct _IP_ADAPTER_INFO {
    struct _IP_ADAPTER_INFO* Next;
    DWORD ComboIndex;
    char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
    char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
    UINT AddressLength;
    BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
    DWORD Index;
    UINT Type;
    UINT DhcpEnabled;
    PIP_ADDR_STRING CurrentIpAddress;
    IP_ADDR_STRING IpAddressList;
    IP_ADDR_STRING GatewayList;
    IP_ADDR_STRING DhcpServer;
    BOOL HaveWins;
    IP_ADDR_STRING PrimaryWinsServer;
    IP_ADDR_STRING SecondaryWinsServer;
    time_t LeaseObtained;
    time_t LeaseExpires;
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
具体实现:选择selchang 表示选中时候改变复合框中值
读取索引号 index=m_ComboSendNic.GetCurSel();
对于一个网卡MAC的结构为:包括六个部分,中间用“-”隔开,其中都是以大写出现
设置一个数组,用循环语句实现,其中不符合标准的将不执行
­
­
主程序中启动接收定时器,定时器的设定用
SetTimer(RECV_TIMER, 1000, NULL); //d第二个是时间,第三个为NULL表示 调用默认的Ontimer函数
­
UINT   SetTimer(  
      HWND   hWnd,                       //   handle   of   window   for   timer   messages  
      UINT   nIDEvent,                     //   timer   identifier  
      UINT   uElapse,                       //   time-out   value  
      TIMERPROC   lpTimerFunc       //   address   of   timer   procedure  
  );
阅读(461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~