
MFC
文章平均质量分 83
whh_tg
这个作者很懒,什么都没留下…
展开
-
MFC PreTranslateMessage
一、PreTranslateMessage 说明CWnd::PreTranslateMessageMSDN:Used by class CWinApp to translate window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functions原创 2013-01-05 15:25:03 · 1060 阅读 · 0 评论 -
MFC Windowproc函数
MSDN:The WindowProc function is an application-defined function that processes messages sent to a window. TheWNDPROC type defines a pointer to this callback function.WindowProc is a placeholder for原创 2013-01-05 11:34:02 · 3906 阅读 · 0 评论 -
MFC OnCommand和OnCmdMsg
1、首先两者都是虚函数CWnd::OnCommand,CCmdTarget::OnCmdMsg2、看源码BOOL CWnd::OnCommand(WPARAM wParam, LPARAM lParam) // return TRUE if command invocation was attempted{ UINT nID = LOWORD(wParam); HW原创 2013-01-05 11:32:42 · 2346 阅读 · 0 评论 -
MFC CToolTipCtrl使用
在界面处理经常会使用到 CToolTipCtrl类一、CtoolTipCtrl封装了一个工具提示的控件,可弹出一个单行的小窗口来显示一些描述信息,大多时候它是隐藏的,除非用户将光标移到要显示提示的工具上面,并且停留大概半秒的时间它才显示,当单击鼠标或者移走光标的时候这个提示窗口就会消失二、使用方式一:只适用于静态控件、不适用于向树型控件这样的位置不固定的控件(因为树型控件经常被折叠和展开)原创 2013-01-04 18:18:37 · 1996 阅读 · 0 评论 -
MFC OnCtlColor函数
MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.在界面处理的时候很有用处因此可以重载WM_CTLCOLOR消息的响应函数.【MSDN】此函数的原型:The framework calls this member function when a child control is about to be drawnafx原创 2012-12-30 15:06:19 · 3336 阅读 · 0 评论 -
MFC 后台执行过程--消息路由
MFC 消息处理顺序MFC中处理消息的顺序----int CWinThread::Run() 中底层系统将消息给 AfxWndProc()1. AfxWndProc()接收消息,寻找消息所属的CWnd对象,然后调用AfxCallWndProc( )。2. AfxCallWndProc()存储消息(消息标识符和消息参数)供未来参考,然后调用WindowProc( )。原创 2012-12-30 14:55:00 · 771 阅读 · 0 评论 -
MFC 窗口的最大化处理、最小化
CWnd::SetWindowPlacementCWnd::GetWindowPlacementCWnd::RepositionBars CWnd::OnSysCommand AfxGetAppAfxGetInstanceHandleAfxGetMainWndCWnd::GetWindowCWnd::RedrawWindowCWnd::OnShowWin原创 2013-01-11 15:37:57 · 533 阅读 · 0 评论 -
MFC 无标题窗口移动、任务栏右键菜单
windows系统 默认的对话框可以随意移动,没有标题栏的对话框需要重载消息来实现。在使用 WM_NCHITTEST消息时,注意此消息是捕获鼠标的所有移动信息,当还需要增加右键消息处理函数时,消息将会被OnNcHitTest()捕获直接代码,记住使用套路,其中函数的使用、消息的使用,可以查看MSDN,这里不在赘述。UINT CClockTestDlg::OnNcHitTest(原创 2013-01-09 14:25:16 · 1777 阅读 · 0 评论 -
MFC 最小化托盘的相关处理
程序最小化到托盘一、说明 部分1、所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。2、SDK API函数 Shell_NotifyIcon 详细参数说明查看MSDNBOOL Shell_NotifyIcon( DWORD d原创 2013-01-14 11:24:41 · 741 阅读 · 0 评论 -
MFC 改变对话框的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用次序
设置对话框色彩及背景图片可在OnCtlColor(),OnEraseBkgnd(),OnPaint()里设置,对话框初始化完毕,显示时调用OnSize()->OnEraseBkgnd(),->OnPaint()->OnCtlColor(), 1、若想改变对话框大小,比如全屏显示ShowWindow(SW_SHOWMAXIMIZED);UpdateWindow();此中 ShowWind转载 2013-01-05 13:58:13 · 1946 阅读 · 0 评论 -
MFC 解决AnimateWindow使用出现的问题:undeclared identifier
在使用 AnimateWindow 函数实现动画窗口时 出现的问题error C2065: 'AnimateWindow' : undeclared identifiererror C2065: 'AW_HIDE' : undeclared identifiererror C2065: 'AW_BLEND' : undeclared identifier原因:原创 2012-10-31 16:13:44 · 1664 阅读 · 0 评论 -
深入解析SendMessage、PostMessage
本文将使用C++语言,在MFC框架的配合下给出PostMessage、SendMessage等的使用方式与使用不当造成的后果(讨论均针对自定义的消息进行)。如有什么错误,欢迎指正。 写过Windows程序的同学都知道PostMessage、SendMessage的区别,PostMessage函数调用发送之后,立即返回,不等待消息处理完成。而SendMessage则让调用的线程处于阻塞(BL转载 2013-01-18 18:22:42 · 913 阅读 · 0 评论 -
vc++ 程序只运行一个实例
要使应用程序只允许同时运行一个实例,可以这样做:在XXXApp::InitInstance() 函数里面开头部位添加代码。代码方案1:(直接查找该程序窗口是否已经存在)CWnd *pWndTemp = NULL;pWndTemp=CWnd::FindWindow(NULL,m_sCaption);CWnd *pWndPrev, *pWndChild; if(pWndPr原创 2013-01-08 16:27:53 · 1147 阅读 · 0 评论 -
PreCreateWindow、PreSubclassWindow、SubclassWindow 解析
CWnd中PreCreateWindow、PreSubclassWindow、SubclassWindow的区别1、函数原型virtual BOOL PreCreateWindow( CREATESTRUCT& cs );virtual void PreSubclassWindow( );BOOL SubclassWindow( HWND hWnd原创 2012-11-01 16:10:12 · 939 阅读 · 0 评论 -
句柄和指针的区别
MSDN上对HANDLE的定义 typedef PVOID HANDLE这个句柄只是从英文handle翻译过来的,只问句是什么意思难以解释,这个是我从别人的空间收集的信息,以下为直接复制希望对你有帮助。参考的连接为:http://hi.baidu.com/jizj06/blog/item/3055de99ebf2ea0d6f068c0f.h原创 2013-01-22 18:08:35 · 694 阅读 · 0 评论 -
MFC 消息中( WPARAM wParam,LPARAM lParam)包含信息
windows的消息具有以下两个参数: (1)字参数(wParam) (2)长参数(lParam) 字参数和长参数都是32位整数,用于提供消息的附带消息,是消息传递过程中参数的载体。附加信息的消息号取决于消息号。一、wParam和lParam消息 :部分说明需要查看MSDN例如:WM_SIZEwParam Specifies the type of resizin原创 2013-01-05 16:02:06 · 2976 阅读 · 1 评论 -
MFC WM_ERASEBKGND
在使用过程中大家可能会出现 在类向导中添加消息隐射找不到Ctrl+W 后,在最后一个选项卡Class Info里的Message filter的下拉列表选window 后再回到你的消息列表里就有了WM_ERASEBKGND消息也可以手动添加注意:1、OnEraseBkgnd函数中返回TRUE或FALSE有什么区别? WM_ERASEBKGNDReturn原创 2013-01-06 09:57:16 · 1301 阅读 · 0 评论 -
MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关
一、DestroyWindow:The MFC framework manages window destruction as well as creation for those windows associated with framework documents and views. If you create additional windows, you are responsi原创 2013-01-06 13:35:23 · 11667 阅读 · 1 评论 -
MFC
学mfc学到文档,视图和框架的时候,知道必须在这三个类的派生类的类声明里加上DECLARE_DYNCREATE,然后在类声明外合适的地方加上IMPLEMENT_DYNCREATE,然后文档,视图和框架,还有文档模板就可以协调工作了。查看msdn,发现类似的宏有这几对: DECLARE_DYNAMIC 和 IMPLEMENT_DYNAMIC DECLARE_DYNC原创 2012-12-28 14:06:34 · 122 阅读 · 0 评论 -
句柄和指针 三
句柄vs指针 句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知 这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础 的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足转载 2012-12-30 11:31:25 · 466 阅读 · 0 评论 -
句柄和指针 二
句柄vs指针 句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来转载 2012-12-30 11:27:26 · 428 阅读 · 0 评论 -
句柄和指针 一
HANDLEHandle to an object. This type is declared in WinNT.h as follows:typedef PVOID HANDLE; 句柄其实就是指针,但是他和指针最大的不同是:给你一个指针,你可以通过这个指针做任何事情,也许是好事,也许是通过这个指针破坏内存,干一些捣乱的事情。这个我想大家都会碰到过,因为乱用转载 2012-12-30 11:26:27 · 507 阅读 · 0 评论 -
MFC 自绘控件
1、先了解清楚几个关键的函数CWnd::PreSubclassWindowCButton::DrawItem原创 2013-01-05 10:30:41 · 210 阅读 · 0 评论 -
MFC
1. 点“确定”、“取消”时的关闭路由为 OnOK()或OnCancel() ---> EndDialog() ---> DestroyWindow() ---> OnDestroy() ---> PostNcDestroy()2. 点“关闭”标题栏按钮的关闭路由为 OnClose()---> DestroyWindow() ---> OnDestroy() ---> PostNcDe原创 2013-01-04 10:35:43 · 129 阅读 · 0 评论 -
MFC 读写xml文件
直接程序:在MFC中利用IXMLDOMDocumentPtr类来操作XML格式的文件.首先:安装msxml.msi,下载地址 然后:在stdafx.h文件中,加载DLL文件#import 宏定义一下 #define XMLDocPtr MSXML2::IXMLDOMDocumentPtr #define XMLNodePtr MSXML2::IXMLDOMNode原创 2013-01-05 22:21:35 · 1114 阅读 · 0 评论 -
CWnd与HWND的区别与转换
CWnd与HWND的区别与转换 一、区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m转载 2013-01-07 13:24:54 · 119 阅读 · 0 评论 -
MFC 类
CDWordArray原创 2013-01-12 14:20:19 · 122 阅读 · 0 评论 -
MFC 右键菜单的方法
1、在客户区和非客户区右键菜单原创 2013-01-14 09:14:05 · 716 阅读 · 0 评论 -
MFC 控件使用一
一、常用函数================================================================================1、获取窗口句柄ex1:AfxGetMainWnd()->m_hWndex2:FindWindow 2、获取父窗口指针GetParent3、获取窗口的始祖GetAncestor原创 2012-10-25 12:22:16 · 578 阅读 · 0 评论 -
MFC 修改文件、文件夹时间属性 (CreateFile GetFileTime SetFileTime)
翻译MSDN:CreateFile Creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, or named pipe. The func原创 2012-12-25 13:48:22 · 2997 阅读 · 0 评论 -
vc++ 多线程、多线程同步
一、MFC 多线程分类 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而原创 2013-01-08 15:57:02 · 1066 阅读 · 0 评论 -
MFC OnGetMinMaxInfo、WM_MINMAXINFO
OnGetMinMaxInfo:The framework calls this member function whenever Windows needs to know the maximized position or dimensions, or the minimum or maximum tracking size.框架调用该成员函数,只要Windows需要知道最大化的位原创 2013-01-12 10:36:38 · 2308 阅读 · 0 评论 -
MFC 获取窗口句柄的方法
一----使用Window API 获取句柄GetNextWindow获取前一个或者后一个窗口的句柄HWND GetNextWindow( HWND hWnd, UINT wCmd);GetWindow该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄HWND GetWindow(原创 2013-01-07 17:13:39 · 1392 阅读 · 0 评论 -
用VC控制系统音量
用VC控制系统音量1、头文件(Mixer.h)// Mixer.h: interface for the CMixer class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MIXER_H__7369BAA5_012E_46原创 2013-04-22 11:41:54 · 437 阅读 · 0 评论