Visual C++ MFC 简明教程

原著:Marshall Brain   编译:张圣华

第一部分:MFC导论

 

    Visual C++ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。为了能充分利用这些特性,你必须理解 C++ 程序设计语言。掌握了C++,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的用户界面部分,并使你能够很容易地以面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows 并彼此兼容。你用 MFC 所建立的代码是完全可移植的。[......]

阅读全文

MFC定时器之妙用

现在有这么一个问题,在VC编程中,如果要每隔一段时间去响应一个事件,应该怎么处理?
1.Sleep(int n)函数;(S 一定要大写,这个和C不一样)
2.WaitForSingleObject()等待函数;
其中,用Sleep()多的话应该知道,它的时间不是很精确,且会让程序陷入休眠,而且这个函数其实是VC专门为线程设计的。而等待函数是需要SetEvent来实现唤醒的。
还有第三个方法,就是定时器的使用。
我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为我们省去很多麻烦。其中定时器也可以在MFC程序中很好地利用。 [......]

阅读全文

关于MFC项目中使用WebBrowser控件禁止脚本错误的方法

        最近一个项目中要在对话框上使用WebBrowser控件进行页面浏览,但在开发过程中发现WebBrowser控件会在浏览一些页面的时候出现 JavaScript脚本错误,严重影响用户体验,而在IE和其他第三方浏览器中均没有这个现象。于是搜索一下发现原来可以通过下面的代码禁止这个错误提示:

  1. m_WebBrowser.put_Silent(TRUE);//禁止脚本错误提示  

效果非常好,可以说立竿见影。但是随之问题又来了,在登录银行网站时会出现无法打开网页的错误,原来这个Silent把银行的选择证书窗口也给禁止了。[......]

阅读全文

代码高处走:从VC6到VC9移植代码问题说明

  首先可以直接用Visual Studio 2008的打开VC6的工作区文件和项目文件(dsw和dsp),并将其升级为VS2008的解决方案格式和项目格式(sln和vcproj),VC9的编译器相对于VC6有了很大的变化,一些编译参数和链接参数被废弃(比如/map:line),有一些改变了名称,还有新增的选项,不过不用担心,升级过程会自动对其进行转换,最终都会得到一个正确的解决方案和VC项目文件,这个过程不会遇到太多的麻烦,问题都出在随后的编译过程中,下面就将我在移植的过程中遇到的问题和我的解决方法总结一下,希望对还在用VC6维护代码的朋友有所帮助。[......]

阅读全文