MFC
yangchuankai
https://github.com/tigerguixh/QuickNews
展开
-
学习笔记_Windows_HOOK编程
一、什么是HOOK? "hook"这个单词的意思是“钩子”,"Windows Hook"是Windows消息处理机制的一个重要扩展,程序员可以通过它来钩住(截获)感兴趣的消息,并用事先编好的一个函数(钩子过程)来处理这些消息!当然,这个处理是在消息到达目标窗口之前进行的。 钩子过程(hook procedure)实际上是一个用来处理消息的函数,通过系统调用,程序员可以把它挂转载 2014-09-04 23:06:19 · 2073 阅读 · 0 评论 -
OnNcHitTest
CWnd::OnNcHitTest afx_msg UINT OnNcHitTest( CPoint point ); 返回值:下面列出的鼠标击中测试枚举值之一。 · HTBORDER 在不具有可变大小边框的窗口的边框上。 · HTBOTTOM 在窗口的水平边框的底部。 · HTBOTTOMLEFT 在窗口边框的左下角。 · HTBOTT转载 2014-09-04 23:11:31 · 700 阅读 · 0 评论 -
MFC:多线程和网路多线程编程举例
多线程编程简例:HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa, //NULL,使用缺省的安全性 DWORD cbStack, //0,使用和调用线程一样的大小 LPTHREAD_START_ROUTINE lpStartAddr, //线程的入口函数地址ThreadProc LPVOID lpvThreadP原创 2014-10-11 13:35:33 · 2179 阅读 · 0 评论 -
MFC:文件
知识点补充:1、指向常量的指针:char ch[5] = "list"; const char* pStr = ch;pStr指向的内容不可改变,pStr的指针值可以改变:*pStr = 'w';//error pStr = "vector";//ok2、指针常量:char ch[5] = "list"; char* const pStr = ch;指针本身是常量,指向的内容可以修原创 2014-10-11 14:00:24 · 648 阅读 · 0 评论 -
MFC:进程间通信方式
windows下进程间通信方式:1、剪贴板(Ctrl+C;Ctrl+V) 2、匿名管道 3、命名管道 4、邮槽/****************************************************************************************/一、剪贴板:void CClipboardDlg::OnBtnSend() //向剪贴板中放置原创 2014-10-11 14:11:36 · 3707 阅读 · 0 评论 -
MFC:菜单
对菜单项命令消息进行响应的顺序:View->Doc->CMainFrame->AppCMainFrame将消息路由给View类处理,若没有处理,View类路由给文档类处理,若文档类也没有处理就由文档类经View类交给CMainFrame类,若框架也没处理此消息,就继续路由给App类。1、设置复选标记(菜单项前有对号标记): //在框架类的OnCreate函数中(框架窗口创建完成后)G原创 2014-10-11 13:31:35 · 690 阅读 · 0 评论 -
MFC:动态链接库
文件/新建 Win32 Dynamic-Link Library;文件/新建 C++ SourceFile:_declspec(dllexport) int add(int a,int b){return a+b;}_declspec(dllexport)int subtract(int a,int b){return a-b;}测试文件调用动态链接库中函数的声明:原创 2014-10-11 13:34:06 · 642 阅读 · 0 评论 -
MFC:线程同步编程举例
补充——线程互斥:CreateMutex()创建互斥对象(内核对象)线程同步:1、利用事件对象(内核对象)事件对象包含一个使用计数,一个指明是自动重置还是人工重置事件的bool值,一个指明该事件是已通知状态还是未通知状态的bool值。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程;当一个自动重置的事件得到通知时,等待该事件的线程中只有一个线程变为可调度线程。H原创 2014-10-11 14:02:38 · 627 阅读 · 0 评论 -
MFC:异步套接字编程举例—网络聊天室程序
网络聊天室程序(MFC:利用win32的扩展函数):int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData);一、加载套接字库://本程序要用到winsock2版本的函数,所以还要自己调用WSAStartup函数。将帮助文档中的例子代码复制//放到CChatApp的InitInstance()函数中,并原创 2014-10-11 14:04:47 · 2923 阅读 · 0 评论 -
MFC:焦点传递
/************************************** MFC **********************************************///在文本框中按回车焦点跳到下一个文本框,并依次向下传递:法一、窗口过程:// 先让文本框响应多行,然后对每一个都要写窗口过程,麻烦!WNDPROC preProc;LRESULT CALLBAC原创 2014-10-11 13:43:09 · 677 阅读 · 0 评论 -
MFC:窗口贴图
MFC窗口贴图步骤:1、创建位图:CBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP1);2、创建兼容DC:CDC dcCompatible;dcCompatible.CreateCompatibleDC(pDC);3、将位图选入兼容DC中:dcCompatible.SelectObject(&bitmap);4、将兼容DC中原创 2014-10-11 13:30:14 · 1958 阅读 · 0 评论 -
MFC:网络编程
应用层:远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。传输层:传输控制协议TCP、用户数据报协议UDP。TCP:面向连接的可靠的传输协议。UDP:无连接的,不可靠的传输协议。(实时性)网络层:网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP。套接原创 2014-10-11 13:58:16 · 763 阅读 · 0 评论 -
MFC:颜色字体对话框及控件颜色
一、颜色对话框:CColorDialog(COLORREF clrInit = 0,DWORD dwFlags = 0,CWnd* pParentWnd = NULL); 数据成员:CHOOSECOLOR m_cc;typedef struct{DWORD lStructSize;HWND hwndOwner;COLORREF rgbResult; //当用户点击了ok按钮原创 2014-10-11 14:01:51 · 1013 阅读 · 0 评论 -
深入剖析MFC基础框架——跟踪MFC单文档程序的执行过程:
1、CTestApp the原创 2014-09-25 20:38:29 · 1692 阅读 · 1 评论 -
视频捕捉全教程(MFC+vfw)
视频捕捉全教程(vc+vfw)目 录一. 视频捕获快速入门二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将一个捕获窗口连接至捕获设备转载 2014-09-04 23:03:47 · 2237 阅读 · 0 评论 -
C++ C# VC VC.net以及VC++有…
原文地址:C# VC VC.net以及VC++有什么区别和联系?">C++ C# VC VC.net以及VC++有什么区别和联系?作者:小马哥C/C++是编程语言,C是C++的爸爸,也就是说C++从C发展而来,而C++完全兼容C的语法.国际上有一个专门管理C++的机构,它们负责C++的标准制定.VC++是微软公司的C++编译环境,使用它可以极大的提高编程速度.C#是微软的一种高级编程语转载 2014-09-11 15:17:53 · 560 阅读 · 0 评论 -
PostMessage(异步)和SendMessage(同步)的区别
PostMessage和SendMessage的区别 1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理转载 2014-09-04 23:12:34 · 1048 阅读 · 0 评论 -
InitInstance函数
BOOL InitInstance()为什么说它是程序的进入点?还有,那个WinMain函数又有什么作用,这两个函数之间有什么关系吗?BOOL InitInstance()是MFC的CWinApp类的成员函数,而WinMain才是真正的入口点,但是MFC不允许程序中有WinMain这个函数,因为MFC自己编写了WinMain函数,如果程序中再定义就重复定义了,而MFC编写的的WinMain转载 2014-09-04 23:21:29 · 1171 阅读 · 0 评论 -
MFC学习之 背景贴图及控件透明
在CDialog类中进行贴图,一般放在OnPaint()函数中,因为窗口更新时,使用它来进行重绘。在OnPain()中贴图的源码如下:[cpp] view plaincopyprint? [cpp] view plaincopyprint?void C***Dialog::OnPaint(转载 2014-09-04 23:05:16 · 1215 阅读 · 0 评论 -
MFC的使用技巧(如何彻底删除一个类)
很实用的快速解决问题的方法 1:使用vc开发项目时,常会遇到这种情况: 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。 解决方法: 找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来 文件即其创建和修改时转载 2014-09-04 23:16:25 · 911 阅读 · 0 评论 -
手把手教MFC贪吃蛇
原文地址:手把手教MFC贪吃蛇作者:泛音手把手教“MFC版贪吃蛇教程” 写在前面的话本次贪吃蛇教程主要知识点包括以下几个方面1 CView类中的消息响应2 控件的消息响应3 基于CView类内的具体游戏实现4 数组5 游戏图形的实现用CDC类实现。 本版游戏的具体实现是在CViewl类转载 2014-09-11 15:17:59 · 1962 阅读 · 1 评论 -
使用VC++绘制不规则的窗体
百度文库链接:http://wenku.baidu.com/view/c3cc8230b90d6c85ec3ac6da.html原创 2014-09-08 12:42:48 · 636 阅读 · 0 评论 -
MFC:最小化窗口至右下角
托盘图标绘制的函数:-------------------------------------------------WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(DWORD dwMessage,PNOTIFYICONDATA pnid);第一个参数就是负责向系统传递消息的 NIM_ADD 向托盘区原创 2014-09-08 12:44:20 · 1619 阅读 · 0 评论 -
MFC开发自己的截图工具
1.新建MFC对话框工程2.添加变量bool show;int posNum;POINT starPoint;POINT endPoint;bool bStart;bool bLdown;bool bCursor;HCURSOR hCursor;CDC m_dcMem;CString starString;CString nowStr转载 2014-09-08 12:25:50 · 855 阅读 · 0 评论 -
VFW-MFC视频采集
刚刚做了一个利用VFW(Video For Windows)的视频采集程序,就想写出来,给需要的人分享一下。程序并不复杂,关键是在没人指导的情况下,学习是比较痛苦和漫长的过程,我经历了这个过程,如果大家想避免走弯路,直接看我下面的解释就好了。由于我仅仅作出了结果,对很多东西的理解也许并不完全正确或者是完全错误,愿请指教。提前说一句,我的程序是在Visual C++6.0平台下写的。下面我慢慢说,你转载 2014-09-08 12:44:04 · 1930 阅读 · 0 评论 -
MFC:基于VFW的视频应用程序开发
当前,在Windows 平台下开发视频应用程序一般采用两种方式:一种是基于视频采集卡所附带的二次软件开发包SDK(Software development kit)进行。这种方式的优点是应用方便,容易上手,缺点是对硬件的依赖性较强,灵活性差,且功能参差不齐,不能充分满足各种视频应用程序的开发需要;另一种方式是基于VFW(Video for Windows)进行的。VFW 是Microsoft公原创 2014-09-08 12:47:13 · 1389 阅读 · 0 评论 -
VC 常见的108个问题
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。转载 2014-09-08 12:50:23 · 1028 阅读 · 0 评论 -
在Visual C++中用ADO进行数据库编程
1. 生成应用程序框架并初始化OLE/COM库环境创建一个标准的MFC AppWizard(exe)应用程序,然后在使用ADO数据库的InitInstance函数中初始化OLE/COM库(因为ADO库是一个COM DLL库)。本例为:1.BOOL CAdotestDlg::OnInitDialog()2.{3.::CoInitialize(NULL)转载 2014-09-08 12:27:27 · 824 阅读 · 0 评论 -
视频捕捉全教程(vc+vfw)
视频捕捉全教程(vc+vfw)目 录一. 视频捕获快速入门二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将一个捕获窗口连接至捕获设备转载 2014-09-08 12:47:58 · 1095 阅读 · 0 评论 -
MFC:HOOK编程
SetWindowsHookEx():安装一个应用程序定义的hook过程到hook链中,后安装的hook过程在hook链的前面.eg: //MFC,屏蔽当前进程主线程的键盘鼠标消息HHOOK g_hKeyboard=NULL;HHOOK g_hMouse;HWND g_hWnd=NULL;LRESULT CALLBACK MouseProc( //鼠标消息过程 int原创 2014-10-11 14:08:57 · 851 阅读 · 0 评论