- 博客(128)
- 资源 (8)
- 收藏
- 关注
原创 三大MSG宏
//afxwin.hstruct AFX_MSGMAP{ const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)(); const AFX_MSGMAP_ENTRY* lpEntries;};struct AFX_MSGMAP_ENTRY{ UINT nMessage; // windows message UINT ...
2019-05-23 10:41:05
377
原创 MFC消息处理调用过程
1.窗口创建的时候调用CWnd::CreateEx()CWnd::CreateEx()-->AfxHookWindowCreate() //安装一个WH_CBT钩子-->_AfxCbtFilterHook() //::SetWindowsHookEx(WH_CBT,_AfxCbtFilterHook, NULL, ::GetCurrentThreadId());2.钩子安...
2019-05-23 10:39:24
1056
原创 AFX_PMSG数据结构
AFX_PMSG数据结构 定义: typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void); void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void); //AFX_MSG_CALL定义为空,只为强调是MSG_CALL void (CCmdTarget::*AFX_PMSG)(vo...
2019-05-23 10:37:32
970
原创 仿制金山毒霸专杀工具界面实现源码
网上有仿制金山毒霸专杀工具界面的实现方法,详见http://www.vckbase.com/module/articleContent.php?id=306但却没有完整的实现源码,这次我认真了,花了几天时间把它详细的实现出来。我把原来的金山毒霸专杀工具exe文件也打包上来了,方便你对照修改程序设计效果。如果你有兴趣也可以从它提取出原始资源文件。源码:https://download.cs...
2018-07-29 09:38:01
571
原创 MFC数据交换和数据校验核心类CDataExchange
//===============类申明===============================class CDataExchange{// Attributespublic: BOOL m_bSaveAndValidate; // TRUE => save and validate data 读写方向标志 CWnd* m_pDlgWnd; // contai...
2018-07-05 11:36:24
680
转载 try catch throw用法
原贴:http://blog.youkuaiyun.com/sky04/article/details/6536011要防止因为异常产生的内存泄漏,可以使用智能指针,也可以用 __try { } __finally { } 《Windows核心编程》一书第23~25章是很好的参考资料。-----------------------------------------
2015-04-01 14:53:01
771
转载 重载数组下标操作符,使用operator
重载数组下标操作符,使用operator原贴:http://blog.youkuaiyun.com/keeplooking2510/article/details/8042057 数组在类的定义中确定好了长度之后,就会限制所要存储的元素的个数,假如我们要存储的元素的个数超过了已确定的数组的长度,那么就会导致数组越界。故最好的办法就是在创建对象的时候才确定要存储元素的个数,即数组的长度
2015-04-01 14:43:39
3641
原创 CPaintDC类与 CClientDC类的区别
CPaintDC 与 CClientDC CPaintDC 与 CClientDC都是从CDC类继承而来。所以,这两个类的外在行为高度的抽象一致。以致于初者会误以为两者的使用可以替换(或者说MFC初学者很容易将两者的使用混淆)。事实上,MFC将两者都从CDC继承,是为了让用户在不同的场景下更加方便,高效的使用DC。如果不理解两者内部运作原理,混淆使用,就会出现屏幕绘制不能达到客户调用结果
2013-12-16 15:43:14
6462
原创 不用写一行代码,用MFC向导实现的文本编辑器(类似Windows下的记事本)
不用写一行代码,用MFC向导实现的文本编辑器(类似Windows下的记事本)源码下载:http://download.youkuaiyun.com/detail/gencheng/6647927 这个东西是给懒人准备的,没有写一行代码,只是用应用程序向导(AppWizard)和资源编辑器加了个菜单和图标,就完成了一个文本编辑器,它实现了“文件”菜单下的新建、打开、保存、另存为、页面设置、打印
2013-12-03 10:35:12
7479
1
原创 MFC中的Dump示例
测试代码:// trace.cpp#include #include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // Define the window classclass CWindow :
2013-11-27 10:47:56
4761
转载 VC获取应用程序路径
http://lw1957625.blog.163.com/blog/static/53634885201032472034979/VC获取应用程序路径//获取应用程序所在路径CString CLogFile::GetFilePath(){ CString m_FilePath; GetModuleFileName(NULL,m_FilePath.G
2013-11-26 10:05:04
4562
原创 字体序列化保存读写
字体序列化保存读写 在实际开发中,程序中经常需要用到保存窗口大小、窗口位置、字体设置功能,以便程序在下次运行后,自动恢复上次的用户的使用设置(比如窗口的大小、位置、字体等等),这样做会给用户带来良好的软件操作体验,提高用户的使用满意度。 软件配置的读取,可以采用多种方法实现:数据库、INI文件、注册表等都可以实现。不过,在VC开发中,使用MFC的序列化机制大概是所有方法中最方便、最好用
2013-11-25 17:02:48
2286
原创 MFC Windows 编程符号
MFC Windows 编程符号 这些符号也是 MFC 支持文件的组成部分,但它们支持标准的 Windows 应用程序功能和操作。 这些符号主要用于菜单。 当在菜单编辑器中处理菜单时,这些符号将出现在与公共菜单命令关联的“属性”窗口中。 例如,如果应用程序具有带“退出”命令的“文件”菜单,该命令将与“属性”窗口中的符号 ID_APP_EXIT 关联。ID_APP_ABOUTI
2013-11-15 16:31:04
2274
原创 AppWizard向导产生的MFC框架中文件菜单项动作的缺省处理行为
AppWizard向导产生的MFC框架中文件菜单项动作的缺省处理行为 可能大家用AppWizard向导后会有一个疑惑,AppWizard向导产生的菜单,比如“文件”菜单,我们没写一行代码,但却自动实现了相应的功能,它是怎么实现的?我们只能知道一个常识:一定是MFC框架在幕后做了一些事情,所以才会实现这些功能,这些功能自己是不会从天上掉下来的。 你应该知道,AppWizard向导产生
2013-11-15 11:35:32
2321
原创 查找(替换)对话框在VC中的使用
查找(替换)对话框在VC中的使用1.弹出查找(替换)对话框 CString findString; findReplaceDialog = new CFindReplaceDialog; findReplaceDialog->Create( TRUE, findString, "" ); 2.如何实现在点击上图对话框中的“查找下一个”
2013-10-28 15:06:57
1956
原创 Bit、Byte、Word、DWord之间的关系
Bit、Byte、Word、DWord之间的关系Bit:位 字长 1 范围:0,1Byte: 字节 字长 8 范围:0~255Word: 字 字长 16 范围:0~65535Dword: 双字 字长 32 范围:0~4294967296换算关系: 1Dword = 2Word
2013-10-24 10:29:31
6007
1
原创 MFC消息处理宏和消息处理函数原型
ON_COMMAND(, )afx_msg void memberFxn();ON_COMMAND_EX(, )afx_msg BOOL memberFxn(UINT);ON_COMMAND_EX_RANGE(, , )afx_msg BOOL memberFxn(UINT);ON_COMMAND_RANGE(, , )afx_msg void
2013-10-15 09:15:59
1862
原创 MFC框架中消失的WinMain()
学过一段时间的MFC之后,很多人大概都有一个疑问:在MFC中,WinMain()哪去了?因为任何一个使用过Win32 SDK编程的人都知道,WinMain()函数是Win32程序开始的入口点,可是在MFC的框架使用中,一般我们只知道从CWinApp类继承得到一个新类,然后重写InitInstance()虚函数,程序框架就可以运行了。哪么,在MFC中,WinMain()倒底去哪了? 似乎微软就
2013-10-13 09:31:18
8671
转载 MFC六大关键技术
MFC六大关键技术原文链接:http://blog.youkuaiyun.com/master_max/article/details/1540204MFC六大关键技术之初始化过程我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要
2013-10-12 16:43:15
1937
原创 绘图基础--橡皮筋画线
绘图基础--橡皮筋画线橡皮筋画线:用户点击鼠标左键定下一个起点,然后把鼠标拖到目标终点,这时程序就会在起始点间画线。// rubber.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};
2013-09-22 16:21:32
6688
原创 绘图基础--检测在矩形中鼠标点击事件
绘图基础--检测在矩形中鼠标点击事件初始:鼠标左键单击:鼠标左键双击:鼠标左键双击还原:// getclcks.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitIn
2013-09-22 15:03:30
1140
原创 绘图基础--鼠标移动画点
绘图基础--鼠标移动画点// draw1.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWind
2013-09-22 14:53:22
2303
原创 绘图基础--多边形2
绘图基础--多边形2// polygon2.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWin
2013-09-18 15:08:54
764
原创 绘图基础--多边形1
绘图基础--多边形1// polygon1.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWin
2013-09-18 14:45:05
1101
原创 绘图基础--画弧,扇形,弓形
绘图基础--画弧,扇形,弓形// arc.cpp#include #include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classc
2013-09-18 14:07:23
2446
原创 绘图基础--椭圆
绘图基础--椭圆// ellipse.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWindow
2013-09-18 14:04:12
847
原创 绘图基础--使用画笔和画刷绘制网络
绘图基础--使用画笔和画刷绘制网络// rect.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWind
2013-09-18 11:59:31
1237
原创 绘图基础--画笔
绘图基础--画笔// line2.cpp#include // Define the application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWindow : pub
2013-09-18 11:33:35
860
原创 绘图基础--画线
绘图基础--画线// line1.cpp#include // Define an application classclass CApp : public CWinApp{public: virtual BOOL InitInstance();};CApp App; // define the window classclass CWindow : publ
2013-09-18 09:54:53
931
原创 MFC版的Hello World
MFC版的Hello World 使用MFC类库写个Hello示例程序比直接用Win32 API写要简单的多了。因为MFC用几个类封装了应用程序的创建,消息循环等等东东。 闲话少说,先给来一个最简单的MFC版Hello World.//Hello.h#ifndef Hello1_H_#define Hello1_H_ #include // Dec
2013-08-20 10:39:46
2793
原创 MFC中SDI程序创建流程的回顾
SDI程序创建流程的回顾 从CWinApp.InitialInstance()开始,1.首先应用程序对象创建文档模板; CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CSDICoinDoc), R
2013-08-14 16:36:27
4786
原创 MFC基础类源码CPP实现文件
WinMain.CPP---->AfxWinMain() //近似可认为是WinMain()函数的入口VIEWCORE.CPP---->CViewDOCCORE.CPP---->CDocumentWINFRM.CPP---->CFrameWndDOCTEMPL.CPP--->CDocTemplateDOCSINGL.CPP--->CSingleDocTemplateD
2013-08-14 16:34:42
2750
转载 Qt vs MFC (Qt和MFC的战争)
Qt vs MFC (Qt和MFC的战争)分类: 其它文章 Qt MFC 2012-01-13 10:54 428人阅读 评论(0) 收藏 举报 在网上看到的,拿来和大家一起讨论下。蓝字均为转载我曾经使用过QT和MFC来开发过软件,我想和大家分享我使用他们时所体会的不同之处。我并非一个职业作家,这篇文章可能看起来不如专业的杂志和网站上的那么条理清晰。但是,我在这里是用我自己的语言来
2013-07-23 10:00:40
1502
转载 MFC是否过时?如何学习MFC?
http://sunxiunan.com/?p=1649MFC是否过时?如何学习MFC?发表于 2010年05月31日 由 admin过时与否?简单回答就是:没有过时。是否需要学习MFC?简单答之:depends on。学习MFC最好的书籍?是这本:http://www.china-pub.com/45715 《VC++技术内幕》,另外深入一点可以看《深入浅出MFC》(
2013-07-23 09:41:03
1201
转载 MFC7对应VC什么版本?
MFC7.0 对应 VC.NET 2002从VC4.2到VC6.0的MFC版本是4.2,后面没有5.0和6.0到后来推出的Visual Studio 2002版本MFC为7.0下面MFC版本同Visual Studio版本关系供你参考7.0 Visual C++ .NET 2002 7.1 Visual C++ .NET 2003 8.0 Visual C++ 2005
2013-07-23 09:30:01
1710
转载 Visual C++ 编程辅助工具
Visual C++ 编程辅助工具(转载)开发辅助工具大收集除了我们日常开发使用的Visual C++、Delphi、JBuilder等等大家伙, 还有很多小巧好用的开发辅助工具,善用它们可以极大的提高我们的效率。日常工作中我主要使用Visual C++开发程序,工作几年,收集了一些小工具, 下面逐个介绍给大家。也希望大家把自己的工具拿出来和大家分享。如果大家需
2013-07-23 09:27:50
1849
转载 fatal error LNK1104: cannot open file "mfc42u.lib"
cannot open file "mfc42u.lib"怎么回事,怎么改动配置选项? 解决方法一: 下 了一个老外的示例代码,放到VC 6.0中编译,竟然得到了一个fatal error LNK1104: cannot open file "mfc42u.lib"错误,让人一筹莫展。在网上Search了下,问题是默认的VC缺少对Unicode的支持,而这个代码恰恰就是按照 Unicod
2013-07-23 09:22:23
6784
3
原创 操作系统核心对象与GDI对象
①核心对象(Kernel object):表现为HANDLE,它由KERNEL32.DLL管理。 .核心对象可以有一个以上的拥有者,甚至可以是跨进程的拥有者。 .每一个核心对象内部都有一个引用记数(refenrence count),当引用记数为0时,操作系统将销毁该核心对象(cleans up操作);CloseHandle()的唯一作用就是将引用记数减1.它只存于下列7种对象
2013-07-20 16:33:27
1190
原创 个人多线程程序设计经验总结
1.各线程的数据要分离开来,避免使用全局变量。2.如果各线程一定要使用全局变量,哪么该全局变量一定要读写保护(临界区,互斥等技术)。3.不要在线程之间共享GDI对象。4.确定你知道你的线程状态,不要径自结束程序而不等待它们的结束;5.让主线程处理用户界面(UI)。6.千万不要在一个临界区中调用Sleep()或Wait..()API函数;不要长时间锁住一份资源。7.线程之间(
2013-07-19 10:13:01
8391
1
转载 线程间如何进行消息传递
线程间如何进行消息传递1) 定义消息ID#define WM_USER_MSG WM_USER+1022) 创建线程m_hThread = CreateThread(NULL, 0, Thread, 0, 0, &m_dwID);3) 线程函数中使用GetMessageDWORD WINAPI Thread(LPVOID lpParameter){while
2013-07-19 10:07:23
2385
仿制金山毒霸专杀工具界面实现源码
2018-07-29
delphi7 程序以管理员权限运行 uac.RES 经典控件界面
2016-11-08
2014新版个人所得税计算器
2014-11-11
文本编辑器
2013-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人