MFC 知识 总结(1)
2015-05-23 16:48
169 查看
IP 转换
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 清屏
[code] 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 清屏
[code] Invalidate(false); UpdateWindow(); RedrawWindow(); 如果是刷新图片之类的。。用双缓冲 注意位置。~~ for(;;){。。。。Invalidate(false); UpdateWindow();}