vc2008 mfc 笔记

来源:互联网 发布:大数据行业人才需求 编辑:程序博客网 时间:2024/06/06 05:47
1. 在vc2010中format(“_T(%d)”,i)这样的格式 为什么要调用字符集而vc6.0就能直接用format(“%d‘,i)?
在vs2010中默认的项目属性中“字符集”使用的是“unicode字符集”。而在vc6中使用的则是“多字节字符集”。只要将vs项目属性的字符集改成“使用多字节字符集”,就可以了。

加上_T(""), 可以自适应unicode或多字节的编译环境改变.保证兼容性。


2. CMainFrame类和C...View类均继承自CWnd类


3. C...App类不是继承自CWnd类,所以没有MessageBox函数,但 可以用 AfxMessageBox("内容");

C...Doc类也不是继承自CWnd类,同样可用 AfxMessageBox("内容");

对一个菜单项,在View,Doc,MainFrameApp四个类中,同时增加响应函数的时候,响应的优先次序是:View 高于 Doc 高于 MainFrame 高于 App 类


4. string求长度时,英文字符按1加,中文字符和汉字按2加;

若想让英文字符,中文字符和汉字都按1加,可先将其转成cstring

string input = "1234 :一个测";//注意:(:前有个空格)
CString cstrInput(input.c_str());

int iSize = input.length();//13
int iLen = cstrInput.GetLength();//9
CString strRight = cstrInput.Right(2);//个测
CString strLeft = cstrInput.Left(6);//1234 :

因为 CString 其实是宽字符,因为CString直接赋值时要用_T("...");转换

0 0
原创粉丝点击