代码改变世界

EndDialog(IDOK)之后需要return

2013-04-25 21:59 by 鉴于, 1185 阅读, 0 推荐, 收藏, 编辑
摘要:模态对话框常用EndDialog函数来让对话框返回,同时能传递给调用窗体一个返回值,EndDialog是通过调用CWnd的 EndModalLoop(int nResult)来通知窗体返回的。在void CWnd::EndModalLoop(int nResult)函数中会发送一个异步消息PostMessage(WM_NULL),也就是说EndDialog是异步的,所以如果在类似下面的代... 阅读全文

[boost] boost::lexical_cast类型转换

2013-04-17 21:57 by 鉴于, 462 阅读, 0 推荐, 收藏, 编辑
摘要:boost是一个开源的c++开发库,提供了一些通用库用来弥补c++标准库的不足。boost::lexical_cast是一个类型转换库,可用于不同类型之间的转换,字符串、整型数等。具体使用例子如下:#include <iostream> #include <boost/lexical_cast.hpp>int main(int argc, char* argv[]) { std::string strNum = "1.0"; float num = boost::lexical_cast<float>(strNum); // 从std:: 阅读全文

Boost 开发例子

2013-04-16 23:40 by 鉴于, 187 阅读, 0 推荐, 收藏, 编辑
摘要:http://programmingexamples.net/wiki/Boost 阅读全文

[MFC]两个GetCurrentTime()的区别

2013-04-16 23:06 by 鉴于, 5468 阅读, 0 推荐, 收藏, 编辑
摘要:在MFC下做开发,有时需要记录当前系统时间,使用CTime保存时间,用函数GetCurrentTime()来获取时间是个办法。但是在MFC中有2个GetCurrentTime函数,一不留神就容易混淆。CTime currentTime = GetCurrentTime(); CTime currentTime2 = CTime::GetCurrentTime();GetCurrentTime()在文件winbase.h中,实际执行的是GetTickCount(),这是Windows API,用来返回从系统开机到现在间隔的毫秒数,超过49天之后,将会溢出。winbase.h中对该函数宏定义如下, 阅读全文

[GUI开发]界面繁忙的处理

2013-04-16 22:11 by 鉴于, 402 阅读, 0 推荐, 收藏, 编辑
摘要:当主线程需要进行耗时操作时,我们需要告知用户程序正在运行,需要用户耐心等待。这时可在按钮相应事件里添加 CWaitCursor curWait; 该语句将会定义个CWaitCursor对象,在构造函数里会将光标设置为等待状态,在退出该作用域时会调用析构函数将恢复光标状态。CWaitCursor 定义在afxwin2.inl文件中_AFXWIN_INLINE CWaitCursor::CWaitCursor() { AfxGetApp()->BeginWaitCursor(); } _AFXWIN_INLINE CWaitCursor::~CWaitCursor() { AFX_BEGIN 阅读全文

warning C4800: “BOOL”: 将值强制为布尔值“true”或“false”(性能警告)

2013-04-16 21:56 by 鉴于, 4125 阅读, 0 推荐, 收藏, 编辑
摘要:在MFC程序中混用BOOL和bool,编译时产生警告信息warning C4800: “BOOL”: 将值强制为布尔值“true”或“false”(性能警告)查看了对应的汇编文件,用的都是mov、cmp、setne这些不太耗时的指令。有些告警信息不用太在意。bool a = false;00C72F33 mov byte ptr [a],0 BOOL b = a;00C72F37 movzx eax,byte ptr [a] 00C72F3B mov dword ptr [b],eax bool c = b;00C72F3E cmp dword ptr [b],0 00C72F42 setne 阅读全文

Visual studio2008编译后事件

2013-04-16 21:30 by 鉴于, 233 阅读, 0 推荐, 收藏, 编辑
摘要:vs开发工具编译后需要将依赖的库文件和其他文件拷贝到指定目录下,但是拷贝时会将文件名都给输出,这样反而影响查看VS输出的警告信息。改用>>NUL 提示编译器不用将命令执行结果输出就OK了xcopy "$(ProjectDir)Images\*" "$(TargetDir)" /Y/I/E >> NUL应该为这个 阅读全文