MFC
走好每一步
读万卷书,行千里路。
展开
-
c++类添加一个成员变量导致异常
修改成非初始化列表,并且安装类成员变量赋值,一切恢复正常!最终反复看了代码,发现c++初始化列表和构造函数内部赋值混用了!怀疑是库编译没及时更新,重新全编译还是单步到读取成员变量值崩溃。反复看了我的成员变量,添加都是符合规则的。而且初始化列表没按照类成员变量的顺序。原创 2023-02-20 11:33:07 · 398 阅读 · 0 评论 -
VS2012编译的MFC库,怎么给VC6使用
VS2012编译的MFC库,怎么给VC6使用原创 2022-12-09 15:55:08 · 221 阅读 · 0 评论 -
RichEdit控件失去焦点后,选择文本还能高亮
RichEdit富文本控件失去焦点,选择文本也能高亮原创 2022-12-02 18:59:16 · 259 阅读 · 0 评论 -
MFC对话框增加快捷键
MFC对话框增加快捷键原创 2022-12-02 10:25:32 · 660 阅读 · 0 评论 -
2种把子窗口的消息传给父窗口处理的办法
把消息回传给父窗口,返回TRUE,子窗口不做消息处理,如下例子,把滚轮的消息抛回去给父窗口处理。通过PostMessage或者SendMessage传送回给父窗口。这种网上文章太多了,这里不再展开。原创 2022-09-30 16:20:12 · 888 阅读 · 0 评论 -
CFormView和CScrollView动态设置滚动条
另外,view下创建的对话框尺寸也需要MoveWindow大于客户区尺寸。当Scroll的尺寸大于客户区尺寸时,滚动条就会出现。这样就实现了滚屏的效果。原创 2022-09-29 14:37:27 · 405 阅读 · 0 评论 -
MFC 树形控件CTreeCtrl增加复选框(单选框)
MFC 树形控件CTreeCtrl增加复选框(单选框)原创 2022-08-12 13:51:40 · 1261 阅读 · 0 评论 -
VC6.0 _variant_t bug导致程序崩溃
VC6.0 _variant_t bug导致程序崩溃原创 2022-08-09 14:31:19 · 178 阅读 · 0 评论 -
MFC CToolBar工具栏隐藏按钮和分割条
MFC CToolBar工具栏隐藏按钮和分割条原创 2022-07-29 17:19:36 · 1021 阅读 · 0 评论 -
IT生涯随笔
但是我总感觉编程是个别扭的活,因为我英文不是特别好,而且属于逻辑思维能力强,记忆力特别差的人,敲代码的时候经常打错字,或者是打漏一些标点符号,所以我编程的过程,大部分时间都是在纠正自己错误,而并不是编程本身。所以笔者看来,假如你看经典的书籍产生疑惑,困扰时,你不如找一个稍有规模的项目,参与进去,踏踏实实干个2~3年,你会发现许多别人一直强调的东西,是如此的真知灼见!我还记得当初安卓刚活起来的时候,很多人只是去参加了十来天的培训班,就敢开价10k一个月,甚至更高,你说他编程的水平有多高,这倒是不见得!...原创 2022-07-23 16:03:05 · 187 阅读 · 0 评论 -
VS2012 编译mupdf v1.1
MuPDFMuPDF - the lightweight PDF, XPS, and E-book viewerhttps://www.mupdf.com/releases/index.html 原本工程是VS2010的工程,会提示升级,点确认升级即可原创 2022-07-12 15:47:32 · 391 阅读 · 0 评论 -
MFC CString 陷阱
MFC CString的陷阱 重载运算符 += 陷阱原创 2022-07-11 11:32:30 · 256 阅读 · 0 评论 -
vc 6.0 设置头文件路径和库路径
vc6.0 头文件包含路径和库路径设置原创 2022-07-06 11:29:18 · 2085 阅读 · 0 评论 -
MFC对话框对控件失去焦点和获取焦点的统一处理,WM_KILLFOCUS消息失败
如上图,我实现了WM_KILLFOCU的映射,但是对话框除了第一次会进去下面的消息函数后,再也没有进来过来我在对话框上摆放的Edit控件失去焦点也不会进来 后面无意中看到一篇文章,正确的处理方式应该是这样重载虚函数,OnCommand 所有编辑控件的获取焦点和失去焦点,上面都可以监控到了同理,监控按钮的获取焦点和失去焦点就是BN_SETFOCUS和BN_KILLFOCUS......原创 2022-06-10 16:08:49 · 2760 阅读 · 1 评论 -
MFC单文档入门
https://blog.csdn.net/zhangtaohbwh/article/details/479107391、主窗口标题栏文本2、缺省文档名称3、文档类型名称4、文档类型描述符5、文档缺省扩展名6、文件类型(由RegisterShellFileTypes向注册表注册文件类型,该字符串会被写入注册表)如果没有用RegisterShellFileTypes函数向注册表注册文件类型,那么是无法通过双击文件打开该文件的,除非通过其他方式向注册表注册了文件类型7、文件类型名称(存储在注册表中的文原创 2022-06-07 19:12:14 · 909 阅读 · 0 评论 -
MFC 单文档最大化
笔者的是VS2012 编译器m_pMainWnd->ShowWindow(SW_SHOW)改成下面的m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);发现没有效果BOOL CTestApp::InitInstance(){// SW_SHOW改成SW_SHOWMAXIMIZED m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); m_pMainWnd->UpdateWindow...原创 2022-05-26 15:35:54 · 215 阅读 · 0 评论 -
mfc word转pdf
1、使用word自带的apiWord转PDF源码-C++开发_c++word转pdf,vcword转pdf-C++文档类资源-CSDN下载C++操作Word转pdf_Anything_gy的博客-CSDN博客_c++ word转pdf原创 2022-05-24 14:06:56 · 439 阅读 · 0 评论 -
pdf转图片 jpg png
1、MUPDF 工具下载地址:https://mupdf.com/downloads/archive/mupdf-1.20.0-rc1-windows.zip解压后有:可以找到mutool.exe工具使用mutool.exe工具转换只转换第一页mutool.exe draw -r 300 -o file.jpg file.pdf转换多页mutool.exe draw -r 300 -o file%d.jpg file.pdf参数解释:-r 后面是dpi的参原创 2022-05-24 11:36:59 · 1123 阅读 · 0 评论 -
MFC单击按钮,按钮凹下,再次单击按钮弹起来
这个可以拖动checkbox,添加变量的类名是CMFCButton即可原创 2022-05-07 14:46:55 · 898 阅读 · 0 评论 -
MFC控件绘制透明png图片或者半透明图片
网上有各种各样的办法,其实使用CImage类就可以完成这些比如说图片上某种颜色设为透明色,如黑色为透明色imageTemp.SetTransparentColor(RGB(0,0,0));imageTemp.Draw(memDC.m_hDC, pt.x, pt.y);半透明改成imageTemp.Draw(memDC.m_hDC, pt.x, pt.y, 150);超简单吧,没有掩码图片之类的,计算公式之类的...原创 2022-05-07 13:46:00 · 924 阅读 · 0 评论 -
VC 6.0 好用的插件推荐
1、VC助手2、WndTab插件插件下载地址VC6.07个非常好用的必备插件合集_vc6插件,vc6插件-C++工具类资源-CSDN下载1.解决无法打开和加入工程问题插件2.VC代码行统计3.VC显示行号_VC6LineNumbervc6插件更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/h_2010007/6292433?spm=1001.2101.3001.6650.4&utm_medium=distribute原创 2022-04-12 17:00:18 · 1283 阅读 · 0 评论 -
CString与const char*互转 深入详解
很多网上的文章只讲了用法,但是没有真正深入地去讲CString转换为啥可以这样做CString其实是一个模板CStringT的别名typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;根据工程设置是Unicode还是多字节,存放的字符串TCHAR不同这里假定大家都了解Unicode编程而CStringT的基类是CSimpleStringTtemplate< typen原创 2022-02-09 12:19:13 · 5351 阅读 · 1 评论 -
MFC 对话框打印和打印预览知识总结
1、准备知识VS2017 MFC对话框程序打印及打印预览的实现_微澜111的博客-CSDN博客_mfc打印预览MFC文档/视图的应用程序,向导给了打印及打印预览的标准支持。使这类应用程序打印及打印预览工作得以简化。另一类对话框程序却没有相应支持,从MFC打印及打印预览的标准支持入手,可以在对话框程序中,增加三个类以支持打印及打印预览,本文介绍了这三个类的实现。 打印及打印预览是编写应用程序经常要解决的问题,为了理解VC++对话框程序的打印及打印预览实现,要先掌握基于文档/视图的应用程序打印及打印预览的.原创 2022-02-09 09:52:14 · 1900 阅读 · 0 评论 -
MFC 莫名其妙出现断言错误解决方案
如果你人你的代码百分百是正确的并且这段代码在新建的工程里运行是完好的但是这段代码在现有的工程上Debug模式下断言错误!!!!请注意:你是否修改了动态库,而忘记重新全编译了!!!!!请注意:你是否修改了动态库,而忘记重新全编译了!!!!!请注意:你是否修改了动态库,而忘记重新全编译了!!!!!笔者被坑了将近一天的时间,笔者的静态库更新了,但是没有对应的重新全编译,主工程编译是ok的,跑起来也是没问题的,但是关闭窗体的时候都会出现断言错误!!!!!!!...原创 2022-01-19 11:23:02 · 1339 阅读 · 2 评论 -
CFrameWnd delete 出错 ,create后的陷阱
int CDlgTest::OnCreate(LPCREATESTRUCT lpCreateStruct){ m_pFrameWnd = new CFrameWnd(); m_pFrameWnd->Create(strMyClass, "", WS_CHILD, CRect(0, 0, 300, 300), this);}我们习惯性创建了就去对话框的析构函数里delete,但是MFC关闭对话框会报异常,原因是关闭对话框时会触发PostNcDestroy虚函数,del...原创 2022-01-18 16:29:44 · 441 阅读 · 0 评论 -
MFC view类生成打印图片
1、基础知识VC++对话框程序打印及打印预览的实现(一)_爬行的菜鸟的博客-CSDN博客_mfc 打印预览张明奇(卡哥)注释:成功版本MFC文档/视图的应用程序,向导给了打印及打印预览的标准支持。使这类应用程序打印及打印预览工作得以简化。另一类对话框程序却没有相应支持,从MFC打印及打印预览的标准支持入手,可以在对话框程序中,增加三个类以支持打印及打印预览,本文介绍了这三个类的实现。打印及打印预览是编写应用程序经常要解决的问题,为了理解VC++对话框程序的打印及...ht...原创 2021-12-22 14:27:26 · 487 阅读 · 0 评论 -
MFC GDI+入门
1、GDI和GDI+区别GDI GDI+ 的区别 - DoubleLi - 博客园GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你https://www.cnblogs.com/lidabo/p/3701252.html2、MFC 初始化GDI+MFC 初始化 GDI+_jiangqin115的专栏-CSDN博客1. 在stdafx.h文件中原创 2021-12-17 11:38:13 · 1972 阅读 · 0 评论 -
MFC 画笔功能实现
一、4个消息处理如果是在VS2012上,我们可以很方便的在对话框的属性栏找到消息页面添加消息如果是以前的VC6的版本,那还是得老老实实使用Class Wizzard左键按下、抬起、移动三个消息是完成画笔功能的必要消息擦除对话框背景重载的目的是不让它闪烁下面直接贴代码吧,基于VS2012做,还是比较简单的功能二、代码// TestPaintDlg.h : 头文件// TestPaintDlg.h : 头文件//#pragma once#incl...原创 2021-12-16 14:11:48 · 1622 阅读 · 0 评论 -
MFC 对话框嵌入网页浏览器
菜单 “工具”-》“选择工具箱项”-》“COM组件”找到Microsoft Web Browser ,勾选按确认切到对话框的资源编辑器在我们经常拖按钮的工具箱“常规”里多了 Microsoft Web Browser原创 2021-12-08 09:39:50 · 2366 阅读 · 0 评论 -
VC6.0 Html Edit 编辑框
源码地址:HTML editor for VC++ 6.0 - CodeProject使用的技术是IHTMLDocument2 COM控件MSHTML介绍:关于MSHTML_蒋晟的专栏-CSDN博客_mshtmlmshtml 命名空间 () | Microsoft Docs执行脚本:IHTMLDocument2 IE浏览器编程_chaoguodong的专栏-CSDN博客...原创 2021-11-30 12:29:20 · 6123 阅读 · 0 评论 -
win10系统下,MFC往C盘保存文件发现找不到
可能有同学往c盘里写文件,发现找不到文件,郁闷无比,但是代码调试又一切正常,折腾了半天,显示什么系统文件之类,还是找不到这些文件。后面才发现是UAC重定向搞的鬼!C:\Users\用户名\AppData\Local\VirtualStore文件夹中找到了临时创建的文件VirtualStore是虚拟存储文件夹。该文件夹可以删除。virtualstore文件夹形成的原因是由于当权限不够时,保证兼容性。比如往program files 或某些系统目录要写入东西,会保存配置文件,权限不够,原创 2021-11-16 11:24:43 · 1352 阅读 · 0 评论 -
MFC修改窗口或者对话框类名实现程序一个实例运行
背景:笔者做软件的时候,经常遇到的情况是查找另外一个进程,给它发消息。但是往往FindWindow根据“窗口标题”去查找,比较慢并且有时候还会失败改成用窗口类名查找,可能比较好。1、MFC更改对话框类名办法MFC下更改窗口的默认类名(ClassName)_飞鹤的程序员人生-CSDN博客_窗口类名2、MFC更改单文档框架类名的办法BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CFrameWnd原创 2021-11-13 11:31:46 · 1855 阅读 · 0 评论 -
COM新手入门知识点汇总
导读:COM组件:指实现某个功能集合的服务器,可以是dll、exe或者其它。一般用c++实现,也可用其 它语言实现,和语言无关。com组件可以存在于本地电脑,也可以存在于远程服务器中。COM接口:在c++中就是组件中的一个类,包含很多函数。IUnknown:所有COM的组件或者接口都必须继承这个接口,在c++中就是一个纯虚函数推荐工具:勇芳COM类型库查看器...原创 2021-09-27 17:03:47 · 870 阅读 · 0 评论 -
MFC ActiveX控件的3种调用方式
导读1、导入ActiveX控件,拖放ActiveX控件方式2、动态创建ActiveX控件3、COM调用方式1、导入ActiveX控件,拖放ActiveX控件方式1、工具箱添加ActiveX控件,菜单“工具”-》“选择工具箱项”选择“COM组件”,在你想要选择的控件上面打钩工具箱最下面就多了对应ActiveX控件拖到界面即可使用笔者按:但是这样的办法有个弊端,电脑必须得安装注册这个ocx控件,不然对话框exe就打不开了。2、动态创建ActiveX控件类向导,快.原创 2021-09-24 11:03:05 · 1747 阅读 · 0 评论 -
MFC ActiveX控件的创建
参考资料:MFC ActiveX (ocx)控件的开发_hk的博客-CSDN博客MFC ActiveX (ocx)开发https://blog.csdn.net/hkcsdn/article/details/529087481、编译失败的解决方案VS报错:error MSB8011: Failed to register output. Please try enabling Per-user Redir......_buknow的博客-CSDN博客关于error MSB8011: Failed t原创 2021-09-22 15:33:09 · 630 阅读 · 0 评论 -
fatal error C1083: 无法打开预编译头文件:“.\Debug\xxx.pch”: No such file or directory
有的项目从VC6.0升到VS2012时,没有使用预编译头,导致编译速度很慢笔者加了预编译头后,一直报这个错误,后面经排查,发现“StdAfx.cpp”使用预编译头选项和其它不一样,要用“创建/Yc”才对...原创 2021-09-10 11:02:03 · 713 阅读 · 0 评论 -
CRichEdit编辑框限定输入字数DDV_MaxChars和LimitText的区别,VS2012的bug
导读:默认读者比较熟悉MFC的框架知道MFC数据绑定的原理熟练使用MFC类向导知道多字节和Unicode的区别知道字节和字符的区别1、DDV_MaxChars可以通过菜单“项目”-》“类向导”(Ctrl + Shitf + X)添加控件变量的时候,设定最大支持的字符数void CTestLimitDlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX); .原创 2021-09-10 10:57:51 · 469 阅读 · 0 评论 -
MFC多字节工程转Unicode,VS2012使用正则表达式字符串添加_T()宏的快捷方式
MFC多字节工程转Unicode,字符串添加_T()宏的快捷方式参考文章:https://blog.csdn.net/weixin_33725722/article/details/86400153Ctrl + Shift + F 打开快速查找和替换对话框选:q$1 替换与捕获组成员1匹配的子字符串加上_T宏变成 _T($1)开始替换吧,爽不爽!...原创 2021-04-24 15:12:57 · 227 阅读 · 0 评论 -
MFC VS2012工具栏加提示的办法
工具栏按钮属性Prompt添加字符串:换行符隔开,第一个字符串是状态栏显示,另一个是弹出的提示文本。另外:未添加响应函数的时候,工具栏按钮是灰色的!原创 2021-04-14 09:58:23 · 199 阅读 · 0 评论 -
MFC切割字符串
vector<CString> SplitCString(const CString strSource, const CString ch){ vector <CString> vecString; int iPos = 0; CString strTmp = strSource.Tokenize(ch,iPos); while(strTmp.Trim() != _T("")) { vecString.push_back(.原创 2021-03-30 14:31:24 · 586 阅读 · 0 评论