MFC
文章平均质量分 60
skywalker_leo
hello
展开
-
在MFC单文档对话框实现窗口分拆
在CMainFrame中定义CSplitterWnd类型的成员变量:class CMainFrame : public CFrameWnd{ protected: // 仅从序列化创建 CMainFrame(); DECLARE_DYNCREATE(CMainFrame)// 属性public: CSplitterWnd m_wn原创 2012-09-07 09:30:09 · 1209 阅读 · 0 评论 -
关于MFC CEdit中仅输入数字时,如何使其不能输入以0开头的非0整数
在MFC中使用CEdit时,设置只允许输入数字,但仍然会出现下图所示“数字200前允许输入0”的问题。这种情况被认为是用户界面不友好的表现,需要做成:如果已经输入非零整数200,则不允许在200再输入0,如下图。可以通过以下方法实现:1. 在DoDataExchange函数中为CEdit控制映射整型变量:DDX_Text(pDX, IDC_EDIT_RXDELAY,原创 2014-09-10 11:25:32 · 3318 阅读 · 0 评论 -
MFC消息映射及消息处理函数原型
MFC把消息主要分为三大类: 1. 标准Windows消息(WM_XXX) 2. 命令消息(WM_COMMAND):凡由UI对象产生的消息都是这种命令消息,可能来自菜单或加速键或工具栏按钮。 3. 控件Notification消息 下面是各种消息的消息映射及对应处理函数原型:WM_COMMAND消息与处理对应规则:消息原创 2012-11-27 11:40:55 · 6450 阅读 · 0 评论 -
Serializable的必要条件
Serializable的必要条件[转自《深入浅出MFC》,侯俊杰] 欲让一个对象有Serialize能力,它必须派生自一个Serializable类。一个类意欲成为Serializable,必须有下列五大条件;至于其原因,前面的讨论已经全部交待过了。 1. 从CObject派生下来。如此一来可保有RTTI、DynamicCreation等机能。转载 2012-12-13 11:27:56 · 1248 阅读 · 0 评论 -
MFC中右键弹出菜单
建立一个MENU资源IDR_MENU_XXX,在OnRButtonDown函数下加入以下代码: CMenu menu; menu.LoadMenu(IDR_MENU_XXX); CMenu* pPopup = menu.GetSubMenu(0); ClientToScreen(&point); pPopup->TrackPopupMenu(TPM_L原创 2012-11-19 14:55:29 · 821 阅读 · 0 评论 -
MFC中视图的全屏显示
[转载自:http://www.sudu.cn/info/html/edu/20080403/260953.html]我们经常会在程序中提供一个全屏显示的功能,如何实现呢?第一步:声明FullScreenHandler类。 #ifndef __FullScreenHandler_h__#define __FullScreenHandler_h__class CFullSc转载 2012-11-19 14:34:44 · 3749 阅读 · 0 评论 -
VC6.0转VS2005问题及解决办法
该文主要内容转载自:http://www.cnblogs.com/sunliming/archive/2011/05/08/2040152.html。我对原文的内容加以整理,便于阅读,以后发现新的转换问题,将会继续补充,也欢迎大家跟帖提出新的问题并解决办法,帮助我继续完善,谢谢!一. 函数原型改变导致的问题1. errorC2440:CMainFrame 无法从 NMTO原创 2012-10-23 15:41:02 · 3757 阅读 · 0 评论 -
MFC工具栏按钮下拉
1. 首先在CMainFrame::OnCreate 函数下添加如下代码,让工具栏有下拉能力和向下的箭头按钮; // 让工具栏具有处理下拉箭头的能力 DWORD dwExStyle = TBSTYLE_EX_DRAWDDARROWS; m_wndToolBar.GetToolBarCtrl().SendMessage(TB_SETEXTENDEDSTYLE, 0, (L转载 2012-11-20 10:28:35 · 3217 阅读 · 1 评论 -
以类的成员函数作为Windows callback函数
[注:摘自《深入浅出MFC》第6章浅出MFC程序设计(P.298)] 首先我要很快地解释一下什么是callback函数。凡是由你设计而却由Windows系统调用的函数,统称为callback函数。这些函数都有一定的类型,以配合Windows的调用操作。 某些Windows API函数会要求以callback函数作为其参数之一,这些API,例如SetTimer、LineDDA转载 2012-11-15 09:32:52 · 2585 阅读 · 0 评论 -
改变工具栏按钮状态的方法
方案一 m_toolBar.GetToolBarCtrl().SetState(ID_BUTTON, TBSTATE_PRESSED); // 按下 m_toolBar.GetToolBarCtrl().SetState(ID_BUTTON, TBSTATE_ENABLED); // 恢复方案二 在消息处理函数中进行设置:ON_UPDATE_COMMAN原创 2012-11-12 15:58:35 · 1232 阅读 · 0 评论 -
改变菜单勾选状态的方法
方案一 CMainFrame *pFrame = (CMainFrame *) AfxGetMainWnd(); CMenu *pMenu = pFrame->GetMenu(); ASSERT(pMenu!=NULL); CMenu *subMenu = pMenu->GetSubMenu(3); ASSERT(subMenu!=NULL); if(m_bShowCo原创 2012-11-12 16:18:39 · 4728 阅读 · 0 评论 -
MFC程序的启动过程与相关函数的执行顺序
[转自:http://wenku.baidu.com/view/3bbcffdda58da0116c17499f.html][JOEY:本篇实为《深入浅出MFC》第6章 MFC程序的生死因果的精简版,作者在原基础上作了删节、整理和说明,便于快速阅读。要是了解得更深入,最好还是阅读原著。]1、创建Application object对象theApp 程序一开始产生一个(且只有一转载 2012-11-13 11:54:14 · 1756 阅读 · 0 评论 -
MFC命令消息(WM_COMMAND)的传送路径
框架窗口实际上是大多数命令消息(“命令消息”是MFC的术语,专指WM_COMMAND)的接收者,但命令消息可以在视图类、文档类、甚至应用程序类中被处理,只要在该类的消息映射表中对想要处理的消息添加输入项即可。命令传送使得你可以将命令处理程序放在最合适的地方,避免把它们都堆在框架窗口类。对于菜单项、工具栏按钮以及其他用户界面对象的更新命令也遵循命令传送机制,因此也可以把ON_UPDATE_COMMA原创 2012-11-07 16:51:18 · 3640 阅读 · 0 评论 -
回调函数调用类成员函数的方法
利用MFC或者其它的C++应用编写回调函数是非常麻烦的,其根本原因是回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指针给其成员函数从而实现程序函数可转载 2012-10-26 15:55:48 · 2207 阅读 · 0 评论 -
在VS2005中使用OCX控件
本文在(http://www.360doc.com/content/10/1210/22/1520315_76921356.shtml)基础上,结合本人的具体使用情况修改而成。第一步,注册ocx控件(如:MyPlayer.ocx)。 注册ocx文件:regsvr32 MyPlayer.ocx 卸载ocx文件:regsvr32 –u MyPlayer.ocx 第二原创 2012-10-16 10:25:12 · 6686 阅读 · 1 评论 -
MFC的自定义消息(用户消息)的定义与使用
[转自:http://blog.csdn.net/nuptboyzhb/article/details/7354702],略加整理及补充。自定义消息的响应和资源消息的响应有很多类似之处;资源消息的响应是以资源的ID号作为标识的;自定义的消息要自己声明消息ID。一.定义第一步,声明消息:#define WM_MYMSG (WM_USER + 100)第二步,在类声明中声转载 2012-09-11 10:27:04 · 1338 阅读 · 0 评论 -
文档对话框程序启动时默认打开文件
BOOL CCMyGOApp::InitInstance(){ …… // 分析标准外壳命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; cmdInfo.m_nShellCommand = CCommandLineInfo::FileOpen; cmdInfo.m_strFileNam原创 2012-09-11 10:04:20 · 566 阅读 · 0 评论 -
Windows支持的4种类型的同步对象:临界区、互斥量、事件和信号量
Windows支持4种类型的同步对象,可以用来同步由并发运行的线程所执行的操作:临界区互斥量事件信号量 MFC在名为CCriticalSection、CMutex、CEvent和CSemaphore的类中封装了这些对象。下面分别对这些同步对象进行介绍。临界区 最简单类型的线程同步对象就是临界区。临界区用来串行化对由两个或者多个线程共享的资源的访问。这些线程必须属转载 2015-09-01 15:03:01 · 3328 阅读 · 0 评论