MFC
bmjhappy
这个作者很懒,什么都没留下…
展开
-
深入了解Debug和Release的区别
原文地址:https://blog.csdn.net/sky___ice/article/details/8993885一:Bin 目录用来存放编译的结果,bin是二进制binrary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。 obj是object的缩写,用于存放编译过程中生成的中间临时...原创 2020-10-22 16:46:33 · 6547 阅读 · 1 评论 -
VS2008和VS2010再次修改菜单栏修改无效
某些时候,在运行已经写好的菜单栏后,再次对菜单栏进行修改,并运行时发现,菜单栏没有改变。还保存着上一次的结果解决办法:在工程的APP类中,在ExitInstance()函数里,C/C++ codeint CXCApp::ExitInstance(){ //........... this->CleanState(); return CWinAppEx::ExitInstance();}添加 this->CleanState();...原创 2020-07-21 13:29:41 · 362 阅读 · 0 评论 -
配置信息写入到.ini文件中的方法
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString( LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpString, LPCTSTR lpFileName ); 其中各参数的意义 LPCT原创 2020-06-18 15:55:01 · 601 阅读 · 0 评论 -
窗口置顶(置于桌面所有程序之上)&VC/MFC 怎么将窗口置顶
软件界面全屏显示后,需要把窗体置于其他桌面程序之上,但总是置于其他弹出框之下,会造成用户忽略了导致用户不明什么原因。百度查了好多方法总是失败。后来查到了CSND的一个帖子http://bbs.csdn.net/topics/380000316试了以下方法便成功了,现把方法公布于下:在窗体的初始化函数OnInitDialog()中添加以下一句代码::SetWindowPos(this->m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SW原创 2020-06-18 15:11:50 · 5491 阅读 · 1 评论 -
MFC屏蔽指定按键
//重写PreTranslateMessage函数BOOL CEventCollectWareDlg::PreTranslateMessage(MSG* pMsg){// TODO: 在此添加专用代码和/或调用基类if (pMsg->message == WM_KEYDOWN) {if(pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN)//屏蔽ESC和ENTER键return TRUE;}if ...原创 2020-05-19 16:44:32 · 312 阅读 · 0 评论 -
MFC中,通过preCreateWindow函数无法设置视图样式(包括窗口的大小)
参考上一条:https://mp.csdn.net/console/editor/html/106217002直奔主题:有时候我们在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)修改如下代码发现不起作用方法1:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CMDIFrameWndEx::PreCreateWindow(cs) ) return FALSE;原创 2020-05-19 16:43:06 · 315 阅读 · 0 评论 -
mfc窗口去掉标题栏、边框和菜单栏
系统:window xp sp3编译器:visual studio 2010项目:基于对话框的MFC应用程序编译器:vs 2010所使用函数://去除标题栏及其他样式SetWindowLong(m_hWnd,GWL_STYLE,WS_OVERLAPPED);//去除边框及其他样式SetWindowLong(m_hWnd,GWL_EXSTYLE,WS_EX_LTRREADING);//使SetWindowLong函数的更改生效,如果不使用此函数,去除边框后//窗口四周...原创 2020-05-19 16:28:46 · 1542 阅读 · 0 评论 -
attempted an unsupported operation 、an unsupported operation was attempted [尝试不支持的操作]错误的三种解决方案
在修改MFC程序的时候突然出现了attempted an unsupported operation的错误,发现是由于修改了资源ID导致,该错误是由找不到相关资源ID导致。 一般这个是资源ID导致的,但是我这次的问题却不是,我的是缺少程序里需要运行的flash插件。在win7系统下是会提示缺少FLASH播放器。在win10俄语系统下就是不提示缺少播放插件,编译时一切正...原创 2020-04-27 16:47:36 · 8668 阅读 · 0 评论 -
将一个EXE程序嵌入MFC运行
原文:http://www.codeproject.com/Articles/18724/Hosting-exe-applications-into-a-dialogHANDLE hProcess;HWND apphWnd = NULL;int CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){ DWORD pID; ...原创 2020-04-27 14:03:52 · 1596 阅读 · 0 评论 -
如何解决汉化英文或翻译其他语言界面和RC出现乱码
汉化一个英文版软件时,出现中文显示乱码的问题。在网上找了一些资料,按照下面的步骤进行修改后,解决了中文乱码问题。第一种情况:修改RC文件中的英文为中文,界面显示乱码,按照下面的步骤解决了。建立两个MFC工程,一个英文版,一个中文版,然后对比两个工程的rc文件;1、改一下#if!defined(AFX_RESOURCE_DLL)||defined(AFX_TARG_CHS)#...原创 2020-04-15 09:15:53 · 2287 阅读 · 0 评论 -
用FindWindow获取了一个主窗口的句柄,如何能把它的全部子窗口的名字打印出来
需求:用FindWindow获取了一个主窗口的句柄,如何能把它的全部子窗口的名字打印出来获取父窗口句柄HWND hWnddlg = AfxGetMainWnd()->m_hWnd; //主窗口句柄或者HWND hWnddlg = this->m_hWnd; //主窗口句柄获取子窗口句柄如果子窗口是控件,并有控件ID号, 则如下获取其子窗口句柄HWND hwnd=::...原创 2020-01-16 10:22:02 · 2434 阅读 · 0 评论 -
获取窗口创建成功返回执行
#include <stdio.h>int main(int argc, char *argv[]){ printf("Hello, world\n"); return 0;}//// 注入钩子,截获系统消息。 hHook = ::SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)Window...原创 2020-01-16 10:20:57 · 204 阅读 · 0 评论 -
Spin Ctontrol(上下微调键)和Edit Control(编辑框) 组合
Spin Ctontrol(上下微调键)和Edit Control(编辑框) 组合一起后,想让Spin Ctontrol置于Combox上边,对Spin Ctontrol进行的设置:Alignment设置为Right AlignAuto Buddy 设置为TRUESet Buddy Integer 设置为 TRUE备注:属性Auto Buddy 一般设为TRUE,但是其作用是自动按...原创 2020-01-16 09:22:53 · 392 阅读 · 0 评论 -
CXMLFile类来操作XML文件
本文实现了一个CXMLFile类来操作XML文件,对应用程序设置选项的保存作了特别的接口支持,并实现了一个CPersistentTreeCtrl(一个可保存标签项的树控件)来演示CXMLFile类的用法。//得到节点值(长整型)long GetLong(const char* cstrBaseKeyName,const char* cstrValueName, long lDefaultV...原创 2020-01-16 09:18:36 · 428 阅读 · 0 评论 -
MFC ListControl 删除选定的多行
https://blog.csdn.net/u012926653/article/details/44960691方法一:void CListCtrlDlg::OnButton1(){ CUIntArray arDelItem ; int CurSel=m_list.GetNextItem(-1,LVNI_ALL | LVNI_SELECT...原创 2020-01-16 09:11:45 · 1006 阅读 · 0 评论 -
MessageBox的常见用法(转载)
一、函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。 Text:欲显示的信息字符串。 Caption:对话框标题字符串。 Type:...原创 2019-11-05 13:39:33 · 600 阅读 · 0 评论 -
番茄助手VA_X的安装
安装之前先关闭VS。1。点击setup,进行安装2.。提示安装成功后,搜索VA_X.dll文件(建议用everthing软件来搜索)3.找到一个比较长的系统盘下的路径:如C:\Users\PC\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist\10.9.2048.0...原创 2018-12-10 17:21:35 · 1587 阅读 · 0 评论 -
获取combobox文本框的值,并判断其内容是否符合格式
//MFC 获取combobox文本框的值,并判断其内容是否符合格式为**:** 如:30:2"//m_cPressBlow为combobox的绑定控件值//此函数实现获取combobox文本框的值,并判断其内容是否符合格式为**:** 如:30:2"BOOL AnalyzePressBlow( ){ CString sLfet,sRight; CString strChoo...原创 2019-02-12 15:08:50 · 2775 阅读 · 0 评论 -
CComboBox控件详解
CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list). CComboBox控件的常用设置属性说明: type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而dropli...转载 2019-02-12 16:01:37 · 9962 阅读 · 0 评论 -
利用CMFCToolBar从24位BMP图像创建工具栏
/*网络案例:注意是利用CMFCToolBar,而不是CToolBar;图像是24位的,Visual Studio自带的工具栏编辑器是不能编辑的;而且是添加一个工具栏,利用应用程序向导生成的工具栏必须保留,所以最后是二个工具栏。*/if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TO...原创 2019-02-12 16:04:41 · 1131 阅读 · 0 评论 -
利用GetPrivateProfileString读取配置文件(.ini)
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTRlpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTRlpFi...转载 2018-10-09 16:01:24 · 766 阅读 · 0 评论 -
vs2010打开需要安装 service pack1
vs2010安装成功后不能运行,如下图 缺少service pack1微软官方的连接已经没了。。“去网络找资源一定要下载1.4g的那个 才能完成安装 不然其他的都是补丁。。”表示未找到!其后找到VS10SP1-KB2736182.exe是可以在线下载并成功安装。下载链接附上:https://download.csdn.net/download/bmjhappy/1084...原创 2018-12-10 17:10:30 · 8354 阅读 · 0 评论 -
MFC 为对话框窗口自定义基类
在MFC中对话框窗口都是继承自CDialogEx的,有时需要为多个窗口指定一个自定义的基类,以实现动态创建窗口时数据传递的目的。编译器:VS2010实现步骤如下:1、新建一个派生自CDialogEx的基类CBaseDlg。 Project -> Add Class -> MFC Class -> Add Class Name 中填写CBas...转载 2018-11-01 14:54:09 · 1932 阅读 · 0 评论 -
Visual Studio当前不会命中断点,还没有为该文档加载任何符号解决方法
1. 设置调试信息格式为:用于“编辑并继续”的程序数据库(/ZI)操作: 项目->属性->配置属性->C/C++ ->常规 ->调试信息格式2. 设置生成调试信息为:是(/DEBUG)操作: 项目->属性->配置属性->链接器->调试->生成调试信息3. 设置优化为:已禁用(/Od)操作: 项目->属性->...原创 2018-10-25 16:59:43 · 1611 阅读 · 0 评论 -
MFC学习笔记之XML 文件操作类
可扩展标记语言XML(Extend Mark Language)是一种描述数据和数据结构的语言,XML数据可以保存在任何可以存储文本的文档中。HTML用来描述外观,而XML从一开始就被设计为表示原始信息而完全忽略数据呈现方式。XML之所以功能强大,是因为计算机行业已经把XML为数据交换的标准,并提供了相当数量的支持工具。窃认为,XML最激动人心的应用是可以在分布式应用中作为消息传递的封装格式(...转载 2018-10-17 08:33:53 · 1011 阅读 · 0 评论 -
listctrl 重绘
common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和究竟这个特性有什么好处。Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_...转载 2018-09-23 10:19:02 · 676 阅读 · 0 评论 -
GetBuffer与ReleaseBuffer的用法,CString剖析
转载:http://blog.pfan.cn/xman/43212.htmlGetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能。CString ::GetBuffer有两个重载版本:LPTSTR GetBuffer( );LPTSTR GetBuffer(int nM...转载 2018-10-09 16:03:01 · 386 阅读 · 0 评论 -
MFC中关于CString::ReleaseBuffer
先来看一段代码: CString str="abcdefg"; LPTSTR pstr=str.GetBuffer(); strcpy(pstr,"ab"); str.ReleaseBuffer(); 此时调用str.GetLength()获取的值是2,正确无误。 但如果注释掉str.ReleaseBuffer()这一行,str.GetLen...转载 2018-10-09 16:02:25 · 947 阅读 · 0 评论 -
WinAPI: IntersectRect、SubtractRect、UnionRect - 用两个矩形合成一个新的矩形
本例效果图:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button...转载 2019-03-25 10:44:45 · 904 阅读 · 0 评论 -
Invalidate(TRUE)与Invalidate(FALSE)区别
篇一:Invalidate(false)不擦除背景,直接画Invalidate(true)擦除背景InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。Invalidate()之后:(MFC的,顺便了)OnPa...转载 2019-03-25 11:03:00 · 743 阅读 · 0 评论 -
动态Static文本导致字体重叠的解决方案
场景: 需要动态更新Static静态文本框的内容来显示不同状态信息要求:设置文本框背景透明方法:添加消息ON_WM_CTLCOLOR()HBRUSH CAppHelperDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCt...转载 2019-03-13 18:09:27 · 1093 阅读 · 1 评论 -
MFC 自定义消息响应基本步骤
MFC 自定义消息响应基本步骤:准备发消息为类A,响应消息的为类B第一步:在类A.h文件中定义消息(加在.cpp中也可以)#define (自定义消息名) WM_USER+1001eg:#define WM_MYMESSAGE WM_USER+1001eg2:#define WM_MESSAGE_vioce WM_USER+103//2014第二步: 类A原创 2014-07-08 16:51:07 · 987 阅读 · 0 评论 -
使用MFC CImage类绘制PNG图片时遇到的问题
原文链接:http://blog.csdn.net/chenlycly/article/details/9193143为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件。CImage首先从文件中加载,即CImage* m_pImgBk;......m_pImgBk =...转载 2019-09-10 16:41:58 · 485 阅读 · 0 评论 -
MFC 动态调用pNG图
//以下内容全部放在一个按钮事件里就可以动态调用pNG图。现在的问题是在有滚动条的窗体里:拖动滚动条图片就不见了void CXMLTestDlg::OnBnClickedButton3(){ CImage* m_pImgBk; m_pImgBk = new CImage; m_pImgBk->Load( _T("D://1234.png")); if ( m_pImgBk...原创 2019-09-10 16:40:12 · 385 阅读 · 0 评论 -
获取窗口句柄
获取父窗口句柄HWND hWnddlg = AfxGetMainWnd()->m_hWnd; //主窗口句柄或者HWND hWnddlg = this->m_hWnd; //主窗口句柄获取子窗口句柄如果子窗口是控件,并有控件ID号, 则如下获取其子窗口句柄HWND hwnd=::GetDlgItem(hWnddlg,IDC_BUTTON_SETUPBLOCK); //子窗...原创 2019-08-19 16:50:07 · 2600 阅读 · 0 评论 -
::SendMessage 和 CWnd.SendMessag在线程中的奇怪区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangji163163/article/details/7107002在win32线程中如果有指针CWnd* pWnd.想操作界面时,向该窗口发送消息调用方式有两种::SendMessage(pWnd->GetSafeHwnd(),WM_MY,0,0);pWnd->SendMe...转载 2019-06-24 11:45:20 · 287 阅读 · 0 评论 -
最简单的基于 DirectShow 的视频播放器
源程序下载链接:https://download.csdn.net/download/bmjhappy/1125066950行代码实现的一个最简单的基于 DirectShow 的视频播放器本文介绍一个最简单的基于 DirectShow 的视频播放器。该播放器对于初学者来说是十分有用的,它包含了使用 DirectShow 播放视频所有必备的函数。直接贴上代码,具体代码的含义都写在注释中了...转载 2019-06-20 16:31:07 · 390 阅读 · 0 评论 -
MFC窗体中打开第三方exe程序到指定区域(二)
参考文章:https://blog.csdn.net/bmjhappy/article/details/91844221 https://blog.csdn.net/bmjhappy/article/details/91858791需求:C++加载外部exe程序到窗口指定区域,并随窗口尺寸变化而变化流程如下:1、CreateProcess创建外部EXE进程...原创 2019-06-13 14:45:22 · 1064 阅读 · 0 评论 -
MFC 控件随窗口尺寸变化自动调整位置及大小
转载:https://www.cnblogs.com/weixinhum/p/3916699.html在MFC对话框编程过程中经常会出现这样一个问题,在给窗口做尺度变换后,原来的控件位置和大小并没有跟着变,导致界面看起来极不协调,如下:要解决这个问题,可在类结构体中声明一个CRect变量以存储之前窗体大小的信息,如下:CRect m_DlgRect;//存储对话框改变前大小,以...转载 2019-06-13 14:37:40 · 3695 阅读 · 0 评论 -
MFC窗体中打开第三方exe程序到指定区域(一)
https://blog.csdn.net/tfygg/article/details/51174801流程如下:1、CreateProcess创建外部EXE进程2、获取指定区域的坐标3、查找进程的主窗口4、将外部程序移到指定区域5、调用ShowWindow显示窗口主程序如下:handle=StartProcess("D:\\program tool\\Secu...转载 2019-06-13 13:30:23 · 2574 阅读 · 0 评论