MFC 知识 总结(1)

来源:互联网 发布:阿里云企业邮箱登陆 编辑:程序博客网 时间:2024/06/10 01:27
  1. IP 转换
    temp.Format(_T("%s"),szOption1);     unsigned long IPByte;    //预转换,得到所需空间的大小,这次用的函数和上面名字相反     int ansiLen = ::WideCharToMultiByte(CP_ACP, NULL, temp, wcslen(temp), NULL, 0, NULL, NULL);     //同上,分配空间要给'\0'留个空间     char* szAnsi = new char[ansiLen + 1];     //转换     //unicode版对应的strlen是wcslen     ::WideCharToMultiByte(CP_ACP, NULL,temp, wcslen(temp), szAnsi, ansiLen, NULL, NULL);     //最后加上'\0'     szAnsi[ansiLen] = '\0'; */    IPByte   = inet_addr(szAnsi);     unsigned   char   *pIP   =   (unsigned   char*)&IPByte;     m_ip.SetAddress(*pIP,   *(pIP+1),   *(pIP+2),   *(pIP+3));    m_port.Format(_T("%d"),m);

2.MFC类向导 三种类的区别
MFC class:
建立基于MFC的类,比如视图,frame,控件等等,从MFC类库派生,可以在Base class中选择父类。
Generic class:
geniric class就是自己写的类,普通C++类,没有派生始祖,包含头文件后,可以使用任何MFC类。使用generic class,它不选择MFC中的类作为基类,也就是没有基类,或者你手工在Base class中填上父类。输入任何类做基类。
generic class,是一个一般的类,可以不从mfc的类中继承,也可以从mfc的类中继承,但自己一定要注意亲自加入mfc的头文件,同时不会有消息映射表,这些都要手动添加。
Form class:
应该是指MFC中带界面资源模板的类,一般都需要选择模板ID,包括CFormView,CRecordView,CDAORecordView和CDialog四种类 但是VC会根据实际项目的类型是dialog,SDI,MDI来选择classvizard里面下拉框中的可选类。
基于dialog的项目,添加form class 时只显示CDialog,前三种不显示(它认为,那三个view类在对话框中不必要使用)
基于SDI或MDI的项目,添加form class 时下拉框显示上述4种类。
Form Class是窗口类,一般情况下用这项时,VC会同时为你生成相应的窗口。
3.MFC 清屏

    Invalidate(false);    UpdateWindow();    RedrawWindow();如果是刷新图片之类的。。用双缓冲注意位置。~~for(;;){。。。。Invalidate(false);UpdateWindow();}
0 0