
MFC
以实战为线索,逐步深入开发各个环节.
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Ilson_
花儿为什么这样红!!!
展开
-
MFC之QtSoapHttpTransport 访问WebService
简述 Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么, 都可以相互交换数据。 MFC本身没有封装访问Web Service的类,都是用的网上流传的gSoapg工具,但是这个工具繁琐不说,每次调用不同的地址时都要生成不同的.h和.cpp文件然后导入项目里,如果要调用的地址很多就必须把对应地址生成的.h和.cpp都...原创 2021-06-27 12:42:50 · 782 阅读 · 0 评论 -
MFC之CBCGPTabbedControlBar 单文档停靠栏提示国际化(实现中英文切换)
当我们使用AttachToTabWnd把多个DockingControlBar合并到一起的时候系统会自动生成一个CBCGPTabbedControlBar,这个CBCGPTabbedControlBar跟CBCGPDockingControlBar一样右上角都是有三个按钮如下: 这时候如果不做任何的修改,系统默认的提示是英文的提示: 如果...原创 2019-02-16 15:55:48 · 782 阅读 · 0 评论 -
MFC之CBCGPDockingControlBar 单文档停靠栏菜单国际化(实现中英文切换)
对于单文档、多文档框架来说,其大部分都用到Dock功能,有的时候我们需要实现界面国际化,但是CBCGPDockingControlBar类提供的弹出式菜单在工程里面找不到,所以就没法通过使用"插入副本"这一功能实现菜单的国际化。 而且在网上也很难找到这一类的解决办法,找了几天没找到解决方法 ,唯一找到一个相关的主题https://bbs.youkuaiyun.com/to...原创 2019-01-27 19:05:29 · 1824 阅读 · 0 评论 -
MFC之CMFCPropertyGridCtrl 重写控件实现自定义行颜色交替变换
简述 CMFCPropertyGridCtrl集成了很多平常用的控件在里面,包括:复选框、静态文本框、按钮、文件资源管理器、颜色选择等控件,其主要通过CMFCPropertyGridProperty对象添加;但是CMFCPropertyGridCtrl也有不足的地方,就是它不像CListControl一样可以交替显示行颜色,所以在有这种需求的基础上做了相对应的一些更改来达到行颜色...原创 2020-02-18 16:07:25 · 1829 阅读 · 0 评论 -
MFC之CMFCToolBar 各个按钮的Prompt提示消息
先来看图 对于两个下拉框(红色框内)和按钮右侧有三角符号(椭圆内)我是通过CMFCToolBar::ReplaceButton()方式设置上去的:mToolBar2_.ReplaceButton(ID_BAR_COMBO1, *mpCalibration_);...CMenu menu1;menu1.LoadMenu(IDR_TOOLA);mToolBar...原创 2018-06-20 15:19:04 · 2945 阅读 · 0 评论 -
MFC之CMFCColorBar 在添加后控件显示为灰色解决方案
在MFC单文档中用到了CMFCColorBar控件,子窗口CImageStainingDlg属性Style不同CMFCColorBar显示的结果也会不一样,两种情况的调用如下: CImageStainingDlg窗口中添加了初始化的代码:BOOL CImageStainingDlg::OnInitDialog(){ CBCGPDialog::OnIni...原创 2019-01-19 16:22:24 · 1845 阅读 · 0 评论 -
MFC之SetThreadUILanguage、GetThreadUILanguage 实现国际化多语言界面
之前项目里需要实现国际化语言界面,因为只需要简体中文与英文的切换,所以来说相对的简单:void CMainFrame::OnLanguageSimplifiedchinese(){ // 返回当前线程语言标识符 LCID lcidNew = GetThreadUILanguage(); if (LANG_CHINESE_SIMPLIFIED == PRIMARYLAN...原创 2019-01-25 17:49:00 · 2680 阅读 · 0 评论 -
MFC之CSplitter+OpenGL 导致界面不刷新
在我第一个项目的时候之前没用到CSplitter分割窗体所以没有出现这个问题,但是随着需求的更改所以重新对第一版进行了修改,在引进了CSplitter控件分割窗体后对于OpenGL纹理显示这部分就出现了刷新纹理后又被CSplitter刷掉了导致纹理显示后又被覆盖了,先来看看效果: CSplitter分割成左右两个窗口,程序起来的时候去加载一张图片然后使用纹理的...原创 2019-03-30 16:30:22 · 614 阅读 · 0 评论 -
MFC之CFileDialog 在获取保存路径时连文件后缀一起获取
在MFC中我们可以通过调用CFileDialog打开文件对话框去选择打开的文件,也可以通过打开对话框去获取保存文件的路径,这主要取决于CFileDialog构造函数中的第一个参数的取值:// Constructorsexplicit CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileS...原创 2019-05-14 15:20:14 · 938 阅读 · 4 评论 -
MFC之CBCGPMenuBar 修改菜单后程序启动不更新
在做多语言界面切换时,UI界面可以插入副本来修改语言,但是MenuBar却不会根据线程UI语言进行加载,因为在程序退出时MFC程序会向注册表写入一些控件的属性记录,所以在程序启动的时候会先加载注册表根据上一次保存的数据进行加载,通过多次测试我总结了两种修改方式: 1. 使用 CleanState()在程序退出时清空注册表信息; 缺点是会把程序记录的所有数据都清...原创 2019-05-17 12:36:40 · 852 阅读 · 0 评论 -
MFC之CBCGPMenuBar、CBCGPToolBar 去掉自定义按钮Customize...
在MFC中会经常的使用菜单栏与工具栏,这给我们带来了很大的方便,但同时也导致了一些因素是我们很难控制的,就比如菜单栏、工具栏的Customize... 在做语言翻译这块时, 虽然可以把Customize...给翻译出来,但是也有一些是控制不了的,就比如: 虽然可以通过很麻烦的重载给搞出来,但是因为不需要这自定义功能所以就把它屏蔽了,改怎么...原创 2019-05-18 16:28:53 · 970 阅读 · 0 评论 -
MFC之OpenGL 在自定义窗口使用纹理的方式渲染YUV422(UYVY)视频流数据
由于之前一直都是使用老版本的OpenGL(1.0版本的),所以只能是渲染RGB的纹理图像,这样对于视频流来说太耗CPU了,因为首先你要把YUV转成RGB,然后才能把RGB以纹理的形式渲染这样子效率很低;为了提高程序运行效率所以打算修改为直接渲染YUV的(相机传过来的)数据,这样子直接省略了YUV转RGB这一步,大大提高了程序运行效率 由于相机传过来的是UYVY格式...原创 2019-06-26 18:38:08 · 1609 阅读 · 3 评论 -
MFC之CMFCTabCtrl 控件的一些消息处理
1. 首先我从CMFCTabCtrl派生了自己的类CMyMFCTabCtrl,在create完成后设置去掉选中页的关闭按钮属性EnableActiveTabCloseButton(FALSE); 当前选中的Page是不会带关闭按钮的只有在最右侧才会出现,可以看下图样式: 这时候如果去点击关闭按钮'x',是不会有响应的,所以需要重写OnCommand(WPARAM wP...原创 2018-06-11 17:25:51 · 3694 阅读 · 2 评论 -
MFC之OpenGL 怎么计算投影区域在窗口中的大小
我用的是正交投影gluOrtho2D以纹理贴图的方式显示一张BMP位图,当我滚动鼠标滚轮时位图会缩小放大;我要求的是纹理贴图在窗口中的大小,如红色框大小: 这是我显示图片的代码://贴图的矩形大小与图片比例一致#define MAPWIDTH20.0#define MAPHIGHTGLfloat(20.0 / (1920.0 / 10...原创 2018-04-24 11:24:34 · 757 阅读 · 1 评论 -
MFC之画圆弧 任意三点绘制圆弧求弧长
接着 http://blog.youkuaiyun.com/ilson_/article/details/770183461. 先求出线的方向角(用向量)// 得到两点的角度// 0 - 360 以 point1 为圆心绕一周double getAngleFromTwoPoint(CPoint point1, CPoint point2){ double angle = 0; CPoi...原创 2017-08-10 17:10:58 · 6843 阅读 · 0 评论 -
MFC之动态绘制圆弧
由于需求,我需要动态的在界面上随意的点下三个点绘制一段圆弧,可是绘制圆弧的方向可不太好控制,我尝试着自己写条件去控制绘图方向,可是没有一个是成功的,于是我网上找了一天,但是都没有找到解决方案。 回到宿舍不甘心的我又开始折腾了,不过我最终在百度上看到了一条公式,利用向量叉乘法判断绘图方向,我想需要这东西的朋友肯定不少,但是网上介绍的资料并不多,所以这里分享出来让大家...原创 2017-08-09 23:21:58 · 8601 阅读 · 4 评论 -
有人知道这是MFC的什么控件吗
原创 2018-01-24 18:40:03 · 304 阅读 · 0 评论 -
MFC之CDockablePane 合并后默认激活选项卡问题
//bSetActive如果为TRUE表示激活后来添加的Pane(激活Pane2),为FALSE表示不激活后来添加的Pane(激活Pane1)m_Pane2.AttachToTabWnd(&m_Pane1, DM_SHOW, FALSE, &pTabbedBar);...原创 2018-01-24 19:03:08 · 675 阅读 · 0 评论 -
MFC之CMFCTabCtrl 调用RemoveTab()出错处理
我的CMFCTabCtrl样式是这样的 最近在用CMFCTabCtrl时遇到一难题,就是在调用RemoveTab()函数移除Tab时会报错 原因在于你在点击关闭按钮时,当前页面被设为活动页面(Action),当你去移除最后一个Tab时页面虽然移除了但是还没来得及把活动页面设置为其他,所以在你RemoveTab之前先要设置m_wndTabC...原创 2018-03-08 13:49:08 · 1032 阅读 · 0 评论 -
MFC之CMFCToolbar 单文档生成多个CMFCToolbar时需要解决的问题
1. 单文档默认生成的工具栏只有一个,但很多时候我们需要添加多个工具栏,比如:m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);m_wndFileToolBar.EnableDocking(CBRS_ALIGN_ANY);m_wndCalibrateToolBar.EnableDocking(CBRS_ALIGN_ANY);m_wndDrawToo...原创 2018-03-15 15:50:43 · 1282 阅读 · 2 评论 -
MFC之CDockablePane 多个CDockablePane 合并后,用代码控制切换Tab
多个CDockablePane合并后会生成N多个Tab页,以前都是用鼠标点击Tab页来切换Tab,现在项目上某个功能需要用代码来控制切换Tab,百度找了很久终于找到一个方法,现在分享出来: CWnd * pParent = m_CameraPane.GetParent(); //m_CameraPane为N个CDockablePane中的一个 if (pParent &&am...原创 2018-03-12 16:21:49 · 1495 阅读 · 0 评论 -
MFC之OpenGL 纹理贴图后再绘制线条两个颜色相互影响
OpenGL渲染方式比GDI+强太多了,所以做绘图操作时我选择了OpenGL(新手),但是我在纹理贴图时出现了这样一个问题,就是我在贴完图后再继续在绘制线条什么的最后::SwapBuffers(hDC_); glFlush(); 也就是输出到显示器时纹理贴图的颜色竟然被线条的颜色影响了,如:而如果我只是贴图而不绘制线条就是没有用到glColor3f()重新设置颜色的时候...原创 2018-03-23 10:31:11 · 2208 阅读 · 24 评论 -
MFC之CMFCToolBar 使用ReplaceButton替换CMFCToolBarMenuButton控件 点击按钮弹出菜单问题
最近使用MFC单文档做了一个项目,需要用到CMFCToolBar由于自己的按钮是在太多了,所有又把相同的按钮归类也就是把相同的按钮放在一个按钮下,在点击这个按钮的时候弹出合并的所有选项问题1:在我点击有下拉项的按钮右侧(三角符号部分)时才会弹出菜单,我现在需要的是只要在这个按钮内不管我点击哪里都可以弹出这个菜单项,查了很久终于让我无意间测试出来了,具体为://通过当前下拉项的ID获...原创 2018-03-19 17:44:23 · 2870 阅读 · 1 评论 -
MFC之OpenGL 屏幕坐标转OpenGL坐标
最近在写一个例子用到了OpenGL,OpenGL的中心点(0, 0)点刚好是我们屏幕的中心点。因为我是需要动态的作图(画点、线、圆、弧...)需要平移 缩放图形,所以我在坐标转换这个问题上卡住了。 鼠标点击屏幕上的一点可以很方便的获得通过OnLButtonDown(),但是把取到的屏幕点转到OpenGL对应点却需要做相应的计算。用到的核心函数是gluUnProject(),如下:...原创 2018-03-23 17:19:44 · 1688 阅读 · 0 评论 -
MFC之OpenGL 三点动态画圆弧
之前用到GDI+绘制过圆弧,因为CDC类封装有绘制圆弧的函数所以很方便,只需要计算它所需的参数就行;但是用GDI+绘图效率不高,所以现在又改成了用OpenGL实现,但是OpenGL没封装有画圆弧函数,所以只能自己动手写。1. 三点可以求出圆心O, 半径R2. 根据这三个点还可以求出绘制圆弧的起始角度startAngle、扫面角度sweepAngle(跨角),如://圆弧扫描角...原创 2018-04-23 16:59:34 · 2437 阅读 · 2 评论 -
MFC之系统任务栏 获取Windows桌面底部任务栏自动隐藏任务栏\取消自动隐藏任务栏 的消息
由于需求,我需要获取Windows底部任务栏 自动隐藏任务栏或者取消自动隐藏任务栏时的消息。 可在当时我就在想想要在自己程序中获取系统的消息那肯定很麻烦,于是我就上网查了一遍不过这方面的介绍也似乎不是很多。不过也有类似的比如用全局钩子、用API拦截技术等,但也只是类似并不是我想要的。 偶然间看到一篇文章用到SHAppBarMessage()可以真正实现任务栏连带着开始菜单一起隐藏 我就觉...原创 2017-08-08 23:23:26 · 2768 阅读 · 1 评论