- 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();}