您的位置:首页 > 其它

Visual Studio 2005的MFC使用入门的一些技巧

2010-08-15 13:03 537 查看
下面的一些是我使用VS2005进行MFC开发时候遇到的一些问题,很多叫你如何MFC入门的书籍都是面向让你在VC6.0的平台的,当你需要使用更高版本的时候势必会遇到很多类似的问题,这些我也是作为一个初学者来稍微谈一谈而已。一、为对话框添加主菜单
1.摁ctrl+r添加menu资源,自动创建一个ID为IDR_MENU1的菜单2.添加菜单项,并添加相应的子菜单3.在子菜单上添加响应的消息响应函数4.设置对话框的menu属性为资源中的菜单IDR_MENU1
二、VS2005集成开发环境不再使用VC6那样的类向导和消息映射对话框,直接在属性窗口的消息、事件栏中选择相应的消息就可以直接添加相关的响应函数。
三、在类视图中选择要添加消息相应函数的类,右击->属性,消息选项卡选择要添加的函数。 四、在VC6里面,是可以把一个EDIT关联到一个CString上去的。然后用UPDATA,很好用。

但在VS2005,似乎只能给EDIT关联一个CEDIT变量,而无法添加CString的了。 实际上需要先使你add 的Variable的变量的属性Control修改为Value,手工把CEdit修改为 CString(这个是一个下拉菜单)
五、当遇到什么assert error的时候可以调试看看具体是什么断言除了问题,如果是有条件的比如忘了判断是否有效的值,这个时候增加一个条件判断试试。 六、0x80000003 错误的意思是 :一个或数个参数无效。另外当你的有一些字符串的操作老说你的类型不对要改为LPCSTR等等类型的时候,比如你使用很简单的
七、VC获取系统时间、程序运行时间 1.使用CTime类 CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime) SYSTEMTIME st;CString strDate,strTime;GetLocalTime(&st);strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond);3.使用GetTickCount//获取程序运行时间long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)Sleep(500);long t2=GetTickCount();();//程序段结束后取得系统运行时间(ms)str.Format("time:%dms",t2-t1);//前后之差即 程序运行时间AfxMessageBox(str);//获取系统运行时间long t=GetTickCount();CString str,str1;str1.Format("系统已运行 %d时",t/3600000);str=str1;t%=3600000;str1.Format("%d分",t/60000);str+=str1;t%=60000;str1.Format("%d秒",t/1000);str+=str1;AfxMessageBox(str);(第七条关于VC时间操作的部分为转载)八、: fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>我是在windows console下编译 枚举局域网主机名及其ip 的时候遇到这个问题的 #include "winsock2.h "#include <afx.h>//因为要用到CString所以要包含这个头文件
#include <iostream>
using namespace std; 后来把头文件包含位置换了下 编译通过 #include <afx.h>//因为要用到CString所以要包含这个头文件#include "winsock2.h "
#include <iostream>
using namespace std; AfxMessageBox("hello world");编译器是会报错的。你只要稍微的改一下变为AfxMessageBox(_T("hello world"));将字符串的类型改为Unicode的类型,这样编译通过,而且此类方法可以扩展,屡试不爽,各位同学可以好好尝试一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: