
C++ MFC
xuanyin235
稳住,我们能赢!!!
展开
-
MFC一一SendMessage与PostMessage
SendMessage:相当于同步操作,将指定的消息发送到一个窗口或多个窗口。SendMessage为这个指定的消息调用窗口处理程序,直到窗口处理完这个程序后才会返回,返回值表示其他程序处理消息后的返回值。PostMessage:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得,返...原创 2018-03-27 09:50:05 · 626 阅读 · 0 评论 -
MFC一一拖拽功能的实现
拖拽功能实现:有时候我们需要实现在一些控件(如编辑框、按钮、列表等)控件上实现文件拖拽的功能,方便我们对应的相关操作。 例如,需要实现在Button按钮上拖拽文件并点击Button按钮打开,实现步骤如下: 实现拖拽功能一般针对控件操作分为两种情况:(1)、如果控件已经提供允许文件拖拽功能,则直接按下图所示添加相应的消息函数,同时将Accpet Files...原创 2018-03-26 23:12:08 · 5056 阅读 · 0 评论 -
MFC一一窗口控件随窗口大小进行自适应
通常,我们在将窗口进行最大化时会出现窗口中的控件自适应问题,如何让窗口中的所有控件跟随窗口做自适应变化,提供如下操作方法供参考1、首先在OnInitDialog函数中获取窗口位置坐标BOOL CDialogQual::OnInitDialog(){ CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 CRect rect; ...原创 2018-02-25 10:25:52 · 6816 阅读 · 5 评论 -
MFC一一GetWindowRect与GetClientRect区别
一、GetWindowRect,获取整个窗体的大小,该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。如下截取屏幕中显示的Dialog及Button按钮在屏幕上的位置然后通过调试查看对应的坐标显示:1、获取Dialog窗体大小,相对屏幕坐标利用ScreenToClient把屏幕坐标转化成相对当前客户区的坐标我们发现top和left为负值,原因主要是因为这个时候的转换是基于Client的原点进行的,即客户...原创 2018-03-09 09:44:04 · 2019 阅读 · 0 评论 -
MFC一一MFCPropertyGridCtrl控件使用
MFC属性网格控件,控件样式如下所示: 通常其与Tree Control结合使用,如上图中的左边部分所述,点击左边树结点,对应右边插入相应的MFCPropertyGridCtrl控件,如下我们将介绍MFCPropertyGridCtrl控件public: CMFCPropertyGridCtrl m_wndPropList;一、在窗口创建前,创建属性表格并添加相应的属性设置int CDi...原创 2018-02-28 08:14:07 · 6920 阅读 · 1 评论 -
MFC一一TreeCtrl树控件的使用
上一节我们介绍MFCPropertyGridCtrl属性表格控件的时候提到过TreeCtrl与MFCPropertyGridCtrl控件的结合使用,本节我们重点介绍TreeCtrl控件的使用。CTreeCtrl m_CtrlTreeStyles;(1)、控件创建两种方法:1、工具箱手动拖动控件到面板上。2、利用Create代码创建virtual BOOL Create( DWO...原创 2018-03-07 11:36:32 · 3909 阅读 · 0 评论 -
MFC一一TabCtrl控件
TabCtrl控件:标签控件,主要用于多配置视图,方便显示与切换具体使用方法:一、首先在Dialog面板中添加一个TabCtrl控件,并关联成员变量m_CtrlTab二、创建Tab标签对应的子对话框,并分别添加对应的对话框类,并创建一个Dialog指针数组,用于关联每个对话框注意:对话框设置属性Style=Child,Border=None。CDialog* m_pPage[MAX_PAGE];...原创 2018-02-11 11:04:36 · 1157 阅读 · 0 评论 -
MFC一一SetWindowPos与MoveWindow的用法区别
两者用途:均表示改变控件的大小和位置分别介绍:(1)、SetWindowPos:改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, //Specifies the new position of the left side of the window. int y, ...原创 2018-02-26 09:26:48 · 7234 阅读 · 0 评论 -
MFC一一在Toolbar为按钮提供下拉菜单
在Toolbar工具中,有的按钮需要实现下拉菜单,方便使用,那么添加下拉菜单需要的步骤如下:1.在OnCreate函数中针对创建的Toolbar获取到对应的按钮属性,并设置为具有下拉风格m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);//设置工具栏的扩展风格 DWORD dwStyle=m_原创 2017-09-12 09:04:36 · 1091 阅读 · 0 评论 -
MFC一一框架类当中的一些操作(改变标题,设置菜单栏,工具栏)
下面介绍MFC单文档编程中,改变相应的视图所涉及到的一些框架类的操作。(1).修改应用程序标题,一般在框架类的PreCreateWindow函数中实现PreCreateWindow一般在窗口创建之前执行的,它的主要任务是对所要创建的窗口进行一些风格或者其他方面的初始化或者说是设置cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTIT原创 2017-09-09 20:53:49 · 1074 阅读 · 0 评论 -
MFC一一拆分窗口类CSplitterWnd
拆分窗口类,提供分离窗口的功能,使一个窗口包含多个方格。窗格一般是由CView派生出来的对象,但它也可以是具有适当子窗口ID的任何CWnd对象。创建步骤:1.在父框架CMainFrame中创建一个CSplitterWnd成员变量2.重载父框架窗口的OnCreateClient/或主View类中的OnCreate函数3.在函数中调用Create(动态创建)或CreateStatic(原创 2017-09-12 19:16:05 · 1515 阅读 · 0 评论 -
MFC一一单文档下实现多标签视图(继承CTabView类)
在上一节中,讲述了拆分窗口类CSplitterWnd,具体见:http://blog.youkuaiyun.com/xuanyin235/article/details/77948615其间提到了CTabViewEx视图类,这个类继承自CTabView类,接下来我们讲解一下单文档视图中有关多标签视图的具体实现。原创 2017-09-12 22:26:00 · 4607 阅读 · 0 评论 -
MFC一一添加WM_USER自定义消息
有些时候,我们希望自定义一些消息响应函数来控制何时进行消息触发,或针对两个不同类或线程之间进行消息互动,这个时候自定义消息响应函数就起到很大作用了。那么如何添加自定义消息呢?具体分为以下几步:如下是一个SDI应用程序关于用户测试界面刷新的代码片段,可以参考其实现过程:(1).定义WM_USER宏#define WM_USER_REFURBISH_TEST_RESULT (WM_USE原创 2017-09-13 21:15:44 · 9147 阅读 · 1 评论 -
MFC一一关于多字符集下界面样式变更问题
在多字符集下默认编译出来的MFC界面,看上去比较呆板,与VC6.0编译器编译出来的界面效果一致,我们想要体现出WIN7版的新效果,只需要在工程文件中将stdafx.h头文件中的如下语句注释即可/直接添加如下语句到头文件末尾,如下所示://#ifdef _UNICODE#if defined _M_IX86#pragma comment(linker,"/manifestdependency原创 2017-09-16 14:57:42 · 521 阅读 · 0 评论 -
MFC一一添加背景图片并让控件实现透明的
我们先根据背景图片的添加方式来进行分类:方法一:在擦除窗口背景处实现,即程序响应WM_ERASEBKGND消息。BOOL CDialog_Prop1::OnEraseBkgnd(CDC* pDC){ CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP2); CDC dcCompatible; dcCompatible.CreateCom...原创 2017-08-25 14:23:11 · 1837 阅读 · 1 评论 -
MFC一一Dialog下使用ON_UPDATE_COMMAND_UI无法更新菜单的解决方法
菜单栏响应函数存在两种,如下所示:UPDATE_COMMAND_UI 处理菜单对应的用户界面显示状态COMMAND 处理该菜单对应的功能但是,我们发现在Dialog下,使用UPDATE_COMMAND_UI处理菜单对应的界面显示状态时,发现界面状态并未更新,这是为什么?原因:(摘自网友) 在下拉菜单显示的时候, WM_INITMENUPOPUP消息被先发送以显示菜单项。MFC C...原创 2018-07-03 23:05:29 · 1588 阅读 · 0 评论