mfc

I can't display Classwizard anymore in MFC project in VS 2019

馋奶兔 提交于 2020-02-25 08:22:48
问题 My project started out years ago. Now using VS 2019. Whilst I can right-click and add event handlers (since it uses a new VS wizard), and I can right-click the class and add generic variables (since it uses a new VS wizard) I can't display class wizard any more: I have tried cleaning the project and tried renaming my folder. It refuses to display and shows that message: Value does not fall within the expected range. The other error message that shows is: The parameter is incorrect. (Exception

MFC app Assert fail at CRecentFileList::Add on Command line FileOpen

老子叫甜甜 提交于 2020-02-25 01:04:47
问题 I'm using VS2010 and Windows 7, and my app is SDI shared DLL, upgraded from VC6. After installing my application, if the user double-clicks the registered file type, the application crashes at the MFC function: void CRecentFileList::Add(LPCTSTR lpszPathName, LPCTSTR lpszAppID) { // ... #if (WINVER >= 0x0601) // ... #ifdef UNICODE // ... #endif ENSURE(SUCCEEDED(hr)); // Crash here: "hr = 0x800401f0 CoInitialize has not been called." This is called from the InitInstance() function: // Parse

郁闷。。

烂漫一生 提交于 2020-02-22 12:48:30
随着逆向的越来越深入,发现自己不会的东西越来越多,知道了PE文件的结构,于是想着可以逆向些程序了吧?结果,OD条件断点不会下,自己用MFC写的最简单的程序根本无从逆起,现在只能逆用汇编写的win32程序,可是这有什么意义。。。现在谁会用汇编写win32? 要学的东西还有好多啊,windows中的寄存器,特别是ESP,看的头大,真的不知道是干什么用的,看雪上有些在ESP下条件断点,可是这是为什么?要弄明白 MFC程序的逆向也是个头大的问题,根本找不到API函数,都是在MFC42里封装的,唉。。。 这还只是正常的程序,如果再加上反调试之类,不知道自己要怎么死了 博客每周降为1篇,因为学的东西实在跟不上一周2篇的写作进度,要加油了! 来源: https://www.cnblogs.com/feiyucq/archive/2009/06/13/1502581.html

侯捷去哪了?

こ雲淡風輕ζ 提交于 2020-02-22 09:56:37
我学习C++和MFC一直都看侯捷老师的书,比如他的译作《Essential C++》和《C++ Primer》(繁体版)、他的著作《深入浅出MFC》,而且特别喜欢看他的《无责任书评》,内心中十分之崇拜他(我很少崇拜人,但他确实是我发自内心崇拜的人),曾经有过一段时间只要在书店看到他的书就会买。 后来我转做.NET了,而他老人家也开始研究Java了(出于对他的好感,我仍然仔细拜读了他的译作《Java编程思想》,此书当时在书店里共有两种版本——第二版和第三版——我毫不犹豫的选择了他翻译的第二版),于是也就很少关注他了,而让我差异的是,他不光是淡出了我的视线,也谈出了大家的视线。不仅没有新作上市,连 网站 也不更新了(现在已经停了),于是我不禁要问:侯捷去哪了? 如果哪位同仁有侯老师的近况还请不吝告知,谢谢! 附:侯捷在大陆的著、译作 深入浅出MFC 深度探索C++对象模型 C++标准程序库 Effective C++ More Effective C++ C++ Primer题解 泛型编程与STL C++设计新思维 STL源码剖析 Essential C++ 重构 Win32多线程程序设计 内存受限系统之软件开发 C# Primer .NET大局观 Practical Java Java编程思想 Word排版艺术 来源: https://www.cnblogs.com/xuyzh

MFC画图

狂风中的少年 提交于 2020-02-22 04:12:24
http://blog.csdn.net/muzi9_17/article/details/6376922 绘制任意线条: 1、创建基于单文档工程:Draw CDrawView类中添加成员变量: CPoint m_ptOrigin; BOOL m_bDraw; 2、CDrawView()中初始化: m_ptOrigin = point; m_bDraw = false; 3、添加消息响应函数: WM_LBUTTONDOWN WM_LBUTTONUP WM_MOUSEMOVE 4、左键按下时: m_ptOrigin = point; m_bDraw = true; 5、左键抬起: m_bDraw = false; 6、鼠标移动时: //画连续线条 CClientDC dc(this); if(m_bDraw) { dc.MoveTo(m_ptOrigin); dc.LineTo(point); m_ptOrigin = point; } //画扇形线条 CClientDC dc(this); if(m_bDraw) { dc.MoveTo(m_ptOrigin); dc.LineTo(point); } //画带外包线的扇形线条 析:画带外包线的扇形线条,不光记录初始位置,还要记录鼠标移动上一位置。 添加成员变量: CPoint m_ptOld; 在鼠标左键按下时初始化: m

C++ 头文件包含顺序 microsoft sdks\windows\v6.0a\include\gdiplustypes.h(658) : error C3861: 'min': identi

对着背影说爱祢 提交于 2020-02-17 01:30:15
周末调试mfc程序, 因为程序中要调用OpenCV的库。 但是出现了:microsoft sdks\windows\v6.0a\include\gdiplustypes.h(658) : error C3861: 'min': identifier not found 这么一个问题。 在网上查呢,他们的解释都是关于,他们建的工程不是mfc程序, 是调用了CMake。 如:websit。 但是呢,我这建立的就是mfc程序。 加了NOMAXMIN都没有用。 后面找到问题的根本原因了:原因是因为我包含的第三方库的opencv的头文件和系统头文件相冲突。 这就涉及到了C++中头文件的包含顺序问题。 然后我把第三方库的头文件放到最后, 并且是"" 去包括头文件。 [cpp] view plain copy #include <atlimage.h> #include "opencv2/opencv.hpp" 再去编译就编译成功了。 这里面包含了一个关于C++头文件的包含顺序研究。 具体可以参考。 来源: CSDN 作者: she8275081 链接: https://blog.csdn.net/she8275081/article/details/104340090

MFC中客户区和非客户区概念的图示

房东的猫 提交于 2020-02-16 12:50:26
本文转载自: http://hi.baidu.com/chenfalei/blog/item/da8440fb331f0767024f56e5.html 问题: 什么是客户区/非客户区? 窗口(框架/frame)的客户区和视图(view)的客户区的区别? 这些都是初学者很容易迷惑的地方,我也是很迷惑,不过经过一番折腾终于弄明白这些问题了。 对于这些问题,我想只用两个图片来说明最直观!如下: 1。在一个MDI(多文档)应用程序中每个概念如下图所标示: 窗口框架的客户区就是指图中的灰色部分:即蓝色方框内区域,框架的非客户区就是指蓝色方框之外的窗口区域,包括程序图标,标题栏,菜单,最大最小/关闭按纽,左右两个框和底下的状态条. 视图的客户区就是指图中绿色部分:即红色方框内的区域,视图的非客户区就是指视图部分红色方框之外的区域,包括:文件图标,标题栏,三个按纽和两个滚动条. 从图中可以看出,工具栏(工具条)不属于框架的非客户区,它跟视图是框架客户区内的"兄弟".它也是一个窗口,读者不妨再拖拽工具条,它还可以拖出框架窗口区域. 因此,以后编程中,对于CClientDC,CWindowDC,GetClientDC(),GetWindowDC()应该可以很容易就区分开了. 5,至于在单文档中,每个概念所指的区域跟上面类似分析即可. 来源: https://www.cnblogs.com

学习:MFC子类化

删除回忆录丶 提交于 2020-02-12 19:10:16
窗口子类化:是创建一个新的窗口函数代替原来的窗口函数。 简单说来,子类化是靠拦截Windows系统中的某些消息来自己进行处理。 自己实现的是子类化一个编辑框,对编辑框输入的内容进行限制 只允许0~9、空格、一个点 定义一个CEditDemo头文件 /* 逻辑顺序: 1、在窗口的初始化函数中得到想要子类化的窗口句柄 2、Attach函数中利用SetWindowLong替换自己要的窗口函数,并且再定义一个指针来保存SetWindowLong返回来的初始的窗口函数 3、定义自己想要的窗口函数NewProc,先判断uMsg是否WM_CHAR,为想要子类化的消息事件,再利用传过来的wParam和lParam来进行详细的字符判断,在进行操作 4、在窗口函数中进行处理完,还需要重新调用初始的窗口函数,其他的默认操作还需要交给初始的窗口函数进行处理 5、最后还需要重写恢复窗口函数 */ #pragma once class CEditDemo { public: CEditDemo(); ~CEditDemo(); bool Attach(HWND hWnd); bool Detach(HWND hWnd); long OldProc; protected: static LRESULT APIENTRY NewProc( HWND hwnd, // handle to window UINT

[MFC] 高仿Flappy bird 桌面版

谁说我不能喝 提交于 2020-02-11 12:55:48
这是今年年初做的东西,一直没有时间整理,现在拿出来分享下~ 目录 开发背景 开发语言及运行环境 效果展示 游戏框架说明 游戏状态及逻辑说明 经典算法说明 重量级问题解决 开发感想 一、开发背景:   flappy bird由一位来自越南河内的独立游戏开发者阮哈东开发,是一款形式简易但难度极高的休闲游戏。简单但不粗糙的8比特像素画面、超级马里奥游戏中的水管、眼神有点呆滞的小鸟和几朵白云便构成了游戏的一切。你需要不断控制点击屏幕的频率来调节小鸟的飞行高度和降落速度,让小鸟顺利地通过画面右端的通道,如果你不小心擦碰到了通道的话,游戏便宣告结束。   这款虐心的小游戏一经推出,便引起火爆的下载。然后先后出现了各种平台的移植开发:IOS平台PC和手机版、采用HTML5+Canvas及Javascript技术来实现的Flappy Bird电脑版、以网页html5+JS技术完全克隆了原版native app的Web App版、实现了在微信朋友圈和QQ空间中的无缝运行的微信/QQ空间版、WindowsPhone版….但是唯一没有的是直接可在windows操作系统下的单机版,于是当时突发奇想,不如我来填补这个漏洞吧! 二、开发语言及运行环境:    此PC版采用C++的MFC技术在VS2012开发平台下写成,支持windows 7\8环境,XP不知道为啥不行~ 三、效果展示: 四、游戏框架说明:  

MFC通过CImage绘制透明图层的png图片

倾然丶 夕夏残阳落幕 提交于 2020-02-08 17:08:34
参考: https://blog.csdn.net/u013472838/article/details/80519525 https://blog.csdn.net/zhongbin104/article/details/8730935 https://blog.csdn.net/u011711997/article/details/52551106/ 一、Cimage类的介绍及使用 详细参考: https://blog.csdn.net/u013472838/article/details/80519525 为什么引入CImage类? CBitmap 类只能处理BMP格式的图片,非常受限。 而CImage可以处理JPGE GIF BMP PNG多种格式图片,扩展了图片处理功能 且能与CBitmap 进行转换( 因为所载入的位图句柄都是HBITMAP,所以可相互转换),因此引入CImage类进行图像处理 CImage类介绍 CImage是MFC和ATL共享的新类,它能从外部磁盘中调入一个JPEG、GIF、BMP和PNG格式的图像文件加以显示,而且这些文件格式可以相互转换。 CImage是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入、显示、转换和保存多种格式的图像文件,包括BMP、GIF、JPG、PNG