近期MFC使用小结

MFC学习之split button使用 MFC学习之split button使用 鄙人之前学了下QT,QT控件封装得太美好了,使用得多了程序员真的会上瘾。由于近期想要深入的学习C++方面的知识。不得不接触到MFC,下午折腾了下,彻底弄清楚了MFC中split button的使用,其他博文都写得不怎么清楚,对于初学者来说是一头雾水。待我细细道来哈~~~~~~~~~~ 1、新建一个MFC基于对话框的例程。如果你的程序要到其他电脑运行的话 阅读详情
 
前几周做了个主题生成工具,在此简单复习下期间使用过的一些东西,包括MFC类库已经windows api。
1. 执行程序即shell调用
SHELLEXECUTEINFO si;
si的主要配置是lpFile和lpParameters,也就是exe -p这段命令中的执行文件和参数两部分
ShellExcuteEx(&si);
 
2. CString
  功能强大,比stl的string感觉用起来简单强大多了,最主要就是连接字符串的时候感觉简单,还有就是格式化特定字符串,可以用format,然后就是以前printf那一套。使用stl_string,需要使用stringstream,然后使用类似cout那种
  其他,还有多种截取子串的功能,字符串毕竟功能(比如忽略大小写,stl中的需要对字符串进行一个转换,这个转换还让我使用了函数对象,oo)
 
3. 浏览文件夹
   就是选择一个文件夹那个功能,使用filedialog不行,需要使用
  BROWSEINFO bi;
  LPITEMIDLIST pList = ::SHBrowseForFolder(&bi);
  char path[];
  SHGetPathFormIDList(pList, path);
  注意需要手动free item
  CComPtr<IMalloc> piMalloc;
  ::SHGetMalloc(&piMalloc);
  piMalloc->free(pList)
 
4. 存文件对话框
  这个的关键在于需要在对话框被释放以后仍旧去取得对话框选择的路径。怎么办呢?就是预先开辟一块空间,将选择的值写进那里。
  CFileDialog d(FALSE);
  CString cStr;
  d.GetOFN().lpstrFile = cStr.getBuffer(1025);
  d.GetOFN().nMaxFile = 1024;// 字符串的长度,不是文件的个数
  Note:需要手动释放cstring出来的buffer
  cStr.ReleaseBuffer();// 虽然release了,但是里面的内容已经放进cStr中,感觉还是有些奇怪的
  PS. 为啥读文件对话框就可以直接getPath捏。。。
 
 5. 配置文件
  曾经自己还在那头傻乎乎的做读写文件,保存配置,匹配字符串之类的一切。结果发现简单的两句API函数就可以搞掂。。。无奈,自己做轮子确实不像话,不过我应该要知道轮子是怎么做的。话说,字符串匹配我还没有做出来,杯具。
  WritePrivateProfileString
  GetPrivateProfileString
 
6. 最简单的多线程
  在UI操作中,多线程还是重要的,毕竟主线程阻塞了,界面停滞就丑死了。
  AfxBeginThread(func, pUser); 一句话
  哦,忘了加func函数了
 UINT func(LPVOID pUser)
{
    ....
}
pUser的话呢,想要什么数据就传什么过去吧
 
7 文件操作
  这个很基础,不过既然写得兴起,就一并写上吧
  CFile, CFileFind不过好像没什么可说的,不过CFileFind 支持通配符查找,isDot(),可以直接判断是否是.和..两个文件。还是isDirectory判断文件夹。
 
好了,最后一条直接让我写得没兴趣了,也没什么可以写了。就Over吧
关于MFC界面动态调整总结 近期,公司项目要求将原来设计好的MFC界面,根据全屏的大小,自动调整。本人是小白,自己写不出来,所以在网上搜了一些资料,经过一番痛苦的挣扎,终于搞定了。现在对这个过程进行总结一下,方便后来人。 首先讲一下目前常用的两种能动态调整MFC界面的方法: 第一种:采用外国人写的easysize,下载可以点击这里:点击打开链接,到下载界面有一个资源文件和一个demo文件。下面简单讲一下应用的步骤 1、 阅读详情

相关推荐

MFC使用RawInput无焦点获取扫码枪数据

近期公司项目用到扫码枪,有可能会遇到焦点不在程序上的情况,扫码枪做为一个键盘设备,焦点在哪数据也将输出到焦点的位置,在网上找了好久,基本上用Hook的比较多,但是都不尽人意,键盘和扫码枪的数据无法准确的区分,整合了好几位网友给出的方案并查阅了相关信息后终于相对完美的解决了这一个问题。 首先,根据小学狗喵喵叫的文章获取到了系统中的所有VID设备,在使用时选择指定的设备即可,https://blog.youkuaiyun.com/qq_39554698/article/details/99...

u010113904的博客 2423

MFC 常用系统函数

1、获取当前路径: char path[MAX_PATH]; GetCurrentDirectoryA(MAX_PATH,path);2、获取系统时间 需要添加头文件:#include <Windows.h> SYSTEMTIME sysTime; GetLocalTime(&sysTime); printf("%4d%02d%02d%02d%02d",sysT

t1234xy4的专栏 1421

MFC --静态库中使用MFC

静态库中使用MFC 前言   近期在VS2017中用MFC的工程写了一个小工具作为内部使用工具,生成的EXE文件给其他同事使用过程中出现“找不到dll”的问题。翻了翻资料,发现是编译的时选择静态还是动态编译导致的。在默认情况下,MFC的使用选项是“在共享DLL中使用MFC”(如下图),这个时候就需要将相关的DLL文件包和可执行程序一起打包,才能正常使用,但是这样用户体验就差了很多,所以释放的软件最好能是“静态库中使用MFC”,这样就减少了用户使用成本。 设置方法 工程-属性-配置属性-常规-MFC的使用-

wsq119的博客 2652

MFC之CFileDialog文件保存扩展名问题

void CmapfileDlg::OnBnClickedNew2(){ static char BASED_CODE szFilter[] = "Map Files (*.map)|*.map|MapCfg Files(*.mapCfg) |*.mapCfg||"; CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWR

黑色星辰 1万+

MFC文件、文件夹打开SelectDialog类

你是否还还在用Windows API提供的CFileDialog类来打开文件,用SHBrowseForFolder来打开文件夹,SelectDialog类,是设计的一个既可以打开文件夹,还能打开多个文件的类库,调用方式和CFileDialog相同。

微带线贴片天线尺寸的计算,利用Matlab计算+常见的RF计算在线公式

微带线贴片天线尺寸的计算,利用Malatb计算 这几天在使用hfss对矩形天线仿真,每次改变频率和实验的材料,都要重新计算一遍,太麻烦了,所以用matlab进行计算。 知道天线的工作频率:f_r 介质板的介电常数:epsilon_r 介质板厚度:h 就可以计算出矩形天线的长:L 矩形天线的宽:W 对于下面公式的单位要注意,公式以及化简了,要注意单位 由于matlab中的变量不能用希腊字母代替,所以用了该字母的读音 代码如下: f_r=2.45; %工作频率,单位GHz epsilon_r=3.5;

weixin_43404609的博客 2万+

子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明

  昨天, 群里面有一个人问起: 要怎么让"文件打开对话框"居中显示, 有人说子类. 而我告诉他的方法是用钩子函数OFNHookProc, 不知道这是不是所谓的子类?相信看了我今天这篇文章以后, 要解决居中显示的问题就是小菜一碟啦~   这个东西也并不是我今天才用, 很久以前做的串口调试助手(Com Monitor)上面也用到了这个功能.    下面来看一张被挂钩了的GetOpenFileNam...

weixin_33991727的博客 369

香橙派OPi 6系列选型指南:RK3588与RK3588S开发板深度对比

开发板选型是嵌入式系统设计的关键环节,尤其在边缘计算和AI推理等场景中,芯片的差异直接影响硬件架构。瑞芯微RK3588及其精简版RK3588S是当前高端开发板的核心方案,两者在PCIe通道、显示输出和SATA支持上存在显著区别。理解这些原理,有助于工程师根据项目需求快速匹配产品。香橙派OPi 6系列基于这两款芯片,衍生出OPi 6、OPi 6 Pro与OPi 6 Max三种形态:紧凑型适合嵌入式门禁与AI盒子,Pro版凭借双屏异显和PCIe 3.0满足收银机与视频分析,Max的双2.5G网口和大内存则面向轻

weixin_29185167的博客 228

MFC——文件打开和保存对话框(CFileDialog)

最近要做一个文件打开和保存的对话框,现将相关的代码记录如下,用以备忘! 所用控件: 2个静态标签(Static Text):用以显示功能标签; 2个文本框(Edit):用以显示打开的文件路径全名要保存的文件路径全名,设置其Read Only属性为true将文本框设置为不可编辑; 2个按钮(Button):用以浏览文件; 打开文件对话框 CFileDialog打开的对话框

阳光日志 10万+

【机器学习】实验3,贝叶斯垃圾邮件识别(完整代码实现+报告)

电子邮件是互联网的一项重要服务,在大家的学习、工作和生活中会广泛使用。但是大家的邮箱常常被各种各样的垃圾邮件填充了。有统计显示,每天互联网上产生的垃圾邮件有几百亿近千亿的量级。因此,对电子邮件服务提供商来说,垃圾邮件过滤是一项重要功能。而朴素贝叶斯算法在垃圾邮件识别任务上一直表现非常好,至今仍然有很多系统在使用朴素贝叶斯算法作为基本的垃圾邮件识别算法。本次实验数据集来自的中文垃圾邮件数据集,目录解压后包含三个文件夹,其中data目录下是所有的邮件(未分词),已分词好的邮件在data_cut目录下。

高丽大学人工智能硕士在读|专注大模型、RAG、OCR与AI工程实践 5027

当vCenter的证书过期、Root密码过期、Root密码遗忘同时发生时的解决方法与步骤

vCenter,强制修改root密码,修改SSO User密码,修复证书过期问题

OCTSJimmy的专栏 5549

近期工作小结

一,Base64编解码。参考文章:《使用混合脚本编程来实现的Base64编码》,《使用混合脚本编程来实现的Base64解码》二, 需求如下:一张jpg图片,将其字节数组按Base64编码后传递给客户端,客户端将此Base64编码的字符串解码后,最后还原为jpg图片。第一步Base64解码请参考(1)中提到的文章《使用混合脚本编程来实现的Base64解码》,下面给出还原为jpeg图片的代

676

【顾邦小讲堂】第十九期 RC Snubber吸收电路详解:抑制MOSFET振铃现象与过冲的设计技巧!

通过RC Snubber电路有效抑制MOSFET DS端的过冲及振铃现象,帮助工程师们在设计中提升电路的稳定性和可靠性

GBupupup的博客 3789

C++ MFC开发近期的注意

switch case break问题 KillTimer杀定时器杀不死,导致定时器一直运行,查看了多个解决办法 发现是因为在OnTimer里的switch-case里没加break,所以代码经常顺着case往下运行,导致功能出错 switch (IntegerExpression) { case ConstantExpression: //在这里放置一个或多个语句 break; case ConstantExpression: //在这里放

yo跟着新宇走 380

Oracle EBS FA 创建成批增加执行时间长且报错

摘要 Oracle EBS系统在执行"创建成批增"请求时出现长时间运行并报错(ORA-00603和ORA-03114)。

陈显平的专栏-Oracle EBS 174

基于FPGA的时间数字转换(TDC)设计(一:原理)

基于FPGA的时间数字转换(TDC)设计,此为第一篇

sdau2005的博客 5070

近期做东西所遇到的几个MFC恼火的问题及解决方法

可能是心态不太平静,最近写代码效率如此的低,遇到了很多问题,解决起来着实痛苦,耗费了很多时间。 下面列举出来,对网上方法进行总结,顺便记录一下 1.对于单文档中非view,doc,frame,app类的自定义类,继承view,framewnd等中的消息响应    自己做了个窗口分割,所以需要新加一个视图类,这个视图类继承了CView类,添加之后,可能需要在自定义类中生成一些自己的按钮,或者菜...

Jin的专栏 1196

RAP Draft Handling 全面拆解:从独占 Draft 到协作 Draft 的架构与落地实践

独占 Draft 的启用点在行为定义头部的with draft。with draft;create;update;delete;with draft;上面这段代码来自一个完整的 Draft 启用示例,包含了 Draft 表声明、锁策略、ETag、Draft 动作等关键要素。:告诉框架草稿存哪。:告诉框架如何做并发控制与一致性保护。:把草稿生命周期动作显式暴露出来,让 UI 与事务引擎能正确驱动流程。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 958

MFC中定时器的使用

参考博客原址:[https://blog.youkuaiyun.com/shufac/article/details/20082719] 近期在使用MFC过程中使用到了定时器。定时器具有可以定时执行动作的效果。这里的“定时执行”应理解为以某个时间段为周期,循环地进行后面的“动作”,这里的动作含义也很丰富:可以是执行函数,也可以是改变量的某种方式还可以是任何设定的命令。 在MFC程序中SetTimer被封装在C...

lanlanrening的博客 590

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

近期的三个目标

<br />近期的三个目标,从小到大:模拟STL,模拟MFC,读Linux(顺便模拟)<br /> 

Kunsa的编程专栏 690

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MFC 中使用unordered_map

近期遇到一个问题,如何高效率的对比软件接收到的数据和数据库里的数据,传统方式下用c语言的话,可以使用for和if进行遍历,但效率低下。 通过查找资料,发现可以通过map,hash_map,unordered_map来实现。其中map效率比较低,hash_map未列入c++标准,最后只剩下unordered_map。   先看unordered_map的实现。 #include &lt;u...

动感小麦兜的博客 971

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: [C#] 为啥DrawImage出来的图像变大了?
下一篇: 由C++入门Objective-C——Objective C 的语言特性
RaReXray
博客等级 码龄23年 23粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值