您的位置:首页 > 其它

MFC 知识 总结(1)

2015-05-23 16:48 169 查看
IP 转换

[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();}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: