存档

文章标签 ‘MFC’

VS2008 SP1 MFC程序在Windows 2000下提示找不到gdiplus.dll

2012年4月20日 没有评论

用Visual Studio 2008 SP1写了一个MFC程序,拿到Windows 2000下运行的时候提示找不到gdiplus.dll,这个程序确实不需要gdiplus.dll,但在导入表中确实有gdiplus.dll。就是SP1的补丁搞的鬼。

微软在Visual Studio 2008 SP1补丁发布时特地说明不要gdiplus.dll MFC程序也可以在2000下运行(Bugs fixed in MFC in Visual Studio 2008 SP1):

Running MFC applications on Windows 2000 (with or without GDIPlus.dll) is supported.
在CodeGuru上的一个帖子MFC and GDI+ problem上找到了解决方案:
把CProjectNameApp的基类从CWinAppEx改为CWinApp就行了,是要改动三处:

头文件ProjectName.h中类的定义:class CProjectNameApp : public CWinApp[......]

fatal error C1010 unexpected end of file while looking for precompiled header directive

2011年5月4日 没有评论

fatal error C1010: unexpected end of file while looking for precompiled header directive
这是今天在编译某书上源代码的时候遇到的一个错误,看错误提示就知道是预编译头出了问题。网上找了一下,这个错误的解决方案如下:

  1. 设置”菜单),选择C/C++选项卡,从Category(分类)组合框中选中Precompiled Headers(预编译的头文件),选择Not Using Precompiled headers([......]

继续阅读

分类: MFC开发 标签: , ,

SysListView32控件响应鼠标单击消息

2011年4月16日 2 条评论

SysListView32控件就是列表视图控件(MFC里面的CListCtrl就是对SysListView32进行的封装)。如果想知道用户选择了哪个元素,可以这么响应消息(注意,这里是Report风格):

// Coded by 代码疯子
// http://www.programlife.net/
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case N[......]

继续阅读

VC/MFC编程弹出UAC窗口

2011年3月17日 没有评论

很多程序能够在XP下正常运行,在Vista普及的时候遇到了各种问题,因为从Vista开始多了一个UAC(User Account Control,用户帐户控制
)不少程序因此而出现各种莫名其妙的错误。后来,人们知道要用管理员身份启动程序。但是仍然有很多用户对这一点不会使,软件开发商总不可能认为每个用户都会去“Run as Administrator”吧。
《Windows核心编程》曾经提及,很多软件开发者喜欢偷懒,在调用需要指明权限的API的时候往往写入XXX_ALL_ACCESS,比如RegO[......]

继续阅读

分类: MFC开发 标签: , , ,

双缓冲区绘图操作的实现

2010年12月31日 9 条评论

在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。
因为窗体在刷新时,总要有一个擦除原来图像的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图像颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显,于是我们就看到了闪烁现象。
我们会很自然的想到,避免背景色的填充是[......]

继续阅读

分类: MFC开发 标签: , , ,