MFC
文章平均质量分 62
云中飞鸿--张*峰
这个作者很懒,什么都没留下…
展开
-
CTime 类的 Format函数注意事项
CTime 类 的Format函数和CDateTimeCtrl类的SetFormat函数的参数形式是一样的。原文链接:https://blog.csdn.net/u012782049/article/details/26808773。根据相关的文档使用相应的函数。MM表示用两位来表示月。(月用大写的MM表示)yyyy表示用四位数来表示年。原创 2024-06-21 16:53:02 · 423 阅读 · 0 评论 -
CTime和CString之间的转换
sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);//将时间字符串“20191105161021”,格式化为“年月日时分秒”就是以"2006-11-27 23:30:59"的格式.注意:使用如下 sscanf方法不可行!一、CString->CTime的方法。二、CTime->CString。//取得CTime中的日期。//取得CTime中的时间。原创 2024-06-14 09:55:02 · 465 阅读 · 0 评论 -
文件I/O:CFile、CFileFind
SEEK_CUR:The offset is set to its current location plus offset bytes.(是设置到offset位置加上当前位置);SEEK_END:The offset is set to the size of the file plus offset bytes.(是设置到offset位置加上文件大小);SEEK_SET:The offset is set to offset bytes.(就是设置到offset位置);SEEK_SET: 文件开头。原创 2023-10-24 11:30:25 · 62 阅读 · 0 评论 -
SetItemData/GetItemData 有什么作用,目的是什么
举个例子,假设CListCtrl中你需要显示某个数据表中的记录,该表有个流水号主键ID,一般这个ID值本身没有什么意义,用户也不需要看,因此在CListCtrl的可见列中,你不需要显示。这时,用SetItemData将其绑定到每一行,将非常方便,用户操作哪一行,则用GetItemData可以得到对应记录的ID,直接用来做操作,很爽。比如这里我不再是一个ID主键了,而是需要关联一个数据结构,那么就可以把该数据结构对象的指针进行SetItemData绑定。这么做,可以省去再到一堆的数据结构数组中去查找的过程。原创 2023-07-06 17:24:41 · 713 阅读 · 0 评论 -
VC++ 网络编程
1.七层模型1)对等层之间不允许直接通信,如两个通信实体的传输层不允许直接通信;2)上层使用下层提供的服务,如传输层使用网络层的服务;3)下层向上层提供服务;4)对等层之间有一个虚拟连接,看起来是直接通信,实际是通过下层来通信,最终的通信是通过物理层的线路完成。2.OSI各层协议1)应用层。远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP(发送邮件)、邮局协议POP3(收取邮件)。...原创 2021-06-03 17:50:19 · 1003 阅读 · 0 评论 -
注册表项
win7 64bit+vs2005操作注册表注册表五个根键HKEY_CLASSES_ROOT——管理文件系统HKEY_LOCAL_MACHINE——管理当前系统硬件配置HKEY_LOCAL_USER——管理系统当前用户配置HKEY_USERS——管理系统的用户信息HKEY_CURRENT_CONFIG——管理当前用户的系统配置在HKEY_LOCAL_MACHINE\SOFTWARE 目录下新建子键并创建REG_DWORD (32位数值),示例代码:#include ...原创 2021-05-19 23:07:05 · 287 阅读 · 0 评论 -
Windows API 函数 LoadIcon的使用
LoadIcon的使用 函数原型: HICON WINAPI LoadIcon (HINSTANCEhInstance,LPCTSTRlpIconName );参数1.hInstance类型:HINSTANCE图标资源所在模块的实例句柄。如果是标准图标,此参数必须为NULL。2.lpIconName类型:LPCTSTR图标资源名或资源标识符,资源标识符由16位组成,在低16位,高16位为0。宏MAKEINTRESOURCE可以将资源标识符强制转换成参数的资源名类型。如...原创 2021-05-08 13:30:20 · 3541 阅读 · 0 评论 -
Windows API函数SetWindowLong
SetWindowLong()用于改变一个窗口的属性。LONG SetWindowLong(HWND hWnd, //handle to window(窗口句柄)int nlndex, //offset of value to set(改变窗口上的何种属性)LONG dwNewLong // new value(指定该属性为一个新的具体样式));窗口属性包括窗口的样式(GWL_STYLE)、扩展...原创 2021-05-08 11:22:36 · 3585 阅读 · 0 评论 -
VS05icon不支持32位彩色图do not support editing 32 bit color images
VS05icon不支持32位彩色图do not support editing 32 bit color images1、现象:---------------------------Visual C++ Win32 Resource Editors---------------------------Warning: Visual Studio image editors do not support editing 32 bit color images. Your changes w原创 2021-05-07 17:44:20 · 302 阅读 · 0 评论 -
Tokenize
Cstring szValue= _T("张三 男 高三 18");szValue.TrimRight(_T(" \n"));iStartPos = 0;szToken = szValue.Tokenize(_T(" "), iStartPos);while(FALSE == szToken.IsEmpty()){ vecArraySplit.push_back(szToken);...原创 2020-04-10 11:22:22 · 694 阅读 · 0 评论 -
Format
1、实现可变保留位数 格式化原创 2020-03-31 11:13:21 · 99 阅读 · 0 评论 -
GetPrivateProfileInt
获取文件中指定的条目的值。UINT WINAPI GetPrivateProfileInt(_In_LPCTSTR lpAppName, //节目名._In_LPCTSTR lpKeyName, //键名._In_INT nDefault, //默认键值_In_LPCTSTR lpFileName //文件名);例如:iBaudRate = GetPrivate...原创 2020-03-18 14:22:15 · 2469 阅读 · 0 评论 -
C++/MFC计算程序运行时间
在我们实际的编程工作中,经常要测量程序的运行时间,比如衡量算法的运行时间等等。在这里我收集了网上集中测量程序运行时间的方法。通过网上查阅资料,找到以下几种VC中求取程序运行时间的方法:方法一 利用GetTickCount函数(ms)代码:CString str;longt1=GetTickCount();//程序段开始前取得系统运行时间(ms)...转载 2020-03-16 16:18:02 · 779 阅读 · 0 评论 -
MFC SendMessage()函数传递数据
比如:用其传递字符串CString cstr1 = _T("123");CString cstr2 = _T("hello");::SendMessage(hWnd, WM_XXX, (WPARAM)(LPCTSTR)cstr1, (LPARAM)(LPCTSTR)cstr2);LRESULT CXXXDlg::OnXXX(WPARAM wParam, LPARAM lParam){// ...原创 2020-02-23 10:13:32 · 896 阅读 · 0 评论 -
在一个类中调用另一个类的2种方法
1、使用窗口类的指针 1.1在类A中定义这个窗口的指针 1.2在类A的构造函数中将窗口的指针设置为空指针 1.3在对应的点击事件中,new一个这个窗口的对象出来,然后再用这个对象调用窗口函数2、直接使用窗口对象2.1在类A中定义这个窗口的对象2.2在对应的点击事件中,再用这个对象调用窗口函数...原创 2020-02-20 12:04:06 · 8112 阅读 · 0 评论 -
CString类的Format函数(设定有效位)
如下图所示:原创 2020-01-06 16:41:27 · 842 阅读 · 0 评论 -
GDI绘图中,SelectObject()函数作用
SelectObject()作用:选入一个GDI对象。同时会返回(选出)先前选入设备上下文的同类的GDI对象。CPen newPen;CPen *oldPen;newPen.CreatePen(PS_SOLID,2,RGB(192,192,192));//创建对象oldPen = pDC->SelectObject(&newPen);//将画笔选入设备描述表,并保存旧...原创 2019-12-24 09:59:18 · 1342 阅读 · 0 评论 -
AFX_VIRTUAL
//{{AFX_VIRTUAL、/{{AFX_MSG、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT 我们看到很多这样打头的代码,其中典型的一个,在你应用程序的 CApp 头文件中。对于类向导来说。这个符号才是有意义的。它是一个消息处理函数的前缀,类向导生成的消息函数,分发函数,事件响应函数都以这个为前缀.如果去掉了,向导将不能识别。些有规律的注释是类向导自动生成的格式...原创 2019-12-12 17:32:01 · 243 阅读 · 0 评论 -
自绘控件--对应的不同的消息,在对应的消息响应函数中绘制
1、按钮、标签、列表框(ListBox)、组合框(ComboBox)、菜单等,在父窗口的WM_DRAWITEM消息里绘制2、列表视图(ListView、ListCtrl)在WM_NOTIFY消息的NM_CUSTOMDRAW里绘制没有这些消息的再考虑WM_PAINT3、如果上述消息不能实现,所有窗口、子窗口都有WM_ERASEBKGND(绘制背景)、WM_PAINT(绘制内容)消息4、要...转载 2019-12-07 11:30:53 · 193 阅读 · 0 评论 -
子类化方法自绘按钮
1.新建一个基于对话框的MFC程序。2.在工程中添加一个新类CMyButton,基类选择CButton。3.然后转至新生成的MyButton.h头文件中,将鼠标放在类名CMyButton上点击一下,打开“属性”窗口,在“消息”按钮下为此类添加WM_LBUTTONDOWN,WM_LBUTTONUP消息,并重写DrawItem虚函数(这个函数是重绘按...转载 2019-12-06 13:39:06 · 314 阅读 · 0 评论 -
MFC 单文档应用程序 基本框架结构
本文将剖析基于MFC的框架程序,探讨MFC框架程序的内部组织结构,MFC是微软为了简化程序员的开发工作而设计的一套c++类集合,利用这些类有效地帮助程序员完成windows应用程序开发。主要类之间的关系 CTestApp类处理消息,将收到的消息分发给相应的对象。 CMainFrame是视图CTestView的父窗口,视图CTestView就显示在CMainFrame的客户区中。 ...原创 2019-12-05 15:00:27 · 2570 阅读 · 0 评论 -
MFC视图View
从word中的“视图”去理解:这里包含了:全屏显示视图、阅读版式视图、写作模式视图、页面视图、大纲视图、Web版式视图。1.阅读视图:会隐藏一切多余的工具栏,常用工具栏里的阅读按钮,可以切换到阅读板式视图。关闭也一样,在工具栏里点击关闭就可以。2.页面视图是文档或者其他对象的一种视图。3.大纲视图用缩进文档标题的形式代表标题在文档结构中的级别。...原创 2019-12-05 13:44:14 · 478 阅读 · 0 评论 -
MFC:;父窗口、子窗口,窗体、窗口
一、每一个窗体form都是一个父窗口,它不是其他任一个窗体的子窗口。窗体上的所有控件,按钮等就是窗体的子窗口。一个窗口(除了窗体)既可能是父窗口,也可能是子窗口。比如窗体里面有一个frame,frame里面的控件就是frame的子窗口,但frame同时也是窗体的子窗口。就像容器里面装着容器,最大的那个容器就是窗体,每一个容器里面的东西就是其子窗口。二、窗口:概念更大,可以包含窗体...原创 2019-12-05 13:27:34 · 1048 阅读 · 0 评论 -
MFC自绘控件
一、MFC自绘控件要了解Windows下的绘图操作,实现界面的美化,就必须了解MFC封装的设备环境类 和图形对象类。1.1 设备环境类MFC中的CDC类封装了Windwos API中的大部分的画图函数。CDC的常用的操作函数包括:*颜色和颜色调色板函数绘图属性函数映射函数坐标函数*区域函数剪切函数线输出函数简单绘图函数椭圆和多边形函数*位图函数...原创 2019-12-04 17:25:43 · 2098 阅读 · 1 评论 -
焦点、光标位置、鼠标位置 区别
一、焦点:光标被激活的位置光标位置:小竖线/横线的位置 现在大部分的光标都为一个小竖线,规则的闪动; 而在DOS下有些光标则是短短的小横线,同样规则的闪动; 现用的windows光标是一个图像,可以是动态的也可以是静态的,在不同情况下样子也不同。鼠标位置:移动鼠标停下时的所在坐标位置二、焦点 概述当...原创 2019-12-04 14:54:57 · 4412 阅读 · 0 评论 -
设备上下文/设备环境/显示场景
CDC类定义的是:设备上下文/设备环境对象 的类。通过CDC对象的成员函数:进行所有的绘图。CDC是MFC的DC的一个类;hDC是DC的句柄(一个类似指针的数据类型);MFC类的前缀都是C开头的H开头的大多数是句柄。使用CDC对象时要构造它,然后调用与它平等的、使用设备上下文的Windows函数的成员函数。...原创 2019-12-04 13:46:35 · 105 阅读 · 0 评论 -
PreCreateWindow()和OnCreate()、Create()的区别
1、在窗口的CWnd::Create()/CreateEx()调用返回前:要先调用PreCreateWindow(),对Create()/CreateEx()中的风格参数进行预处理设置。之后调用OnCreate进行实际的窗口创建,返回后,Create()/CreateEx()也返回,窗口创建结束。CWnd::Create()/CreateEx(){ PreCreateWi...原创 2019-12-03 16:23:44 · 719 阅读 · 0 评论 -
MFC单文档程序中C**APP文件的ProcessShellCommand(cmdInfo)函数功能解释
在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢,我差了很多资料终于使其漏出庐山真面目。CCommandLineInfo cmdInfo;//定义命令行ParseCommandLine(cmdInfo);//解析命令行// 调度在命令行中指定的命令。如果// 用 /RegServer、/Register、/Un...转载 2019-12-03 15:56:36 · 297 阅读 · 0 评论 -
MFC API:AfxRegisterWndClass(注册窗口类)
如果程序主窗口不是由CframeWnd派生而来,而是由CWnd派生而来,那么在创建窗口的时候,必须注册自己的WNDCLASS,因为CWnd::CreateEX不接受NULLWNDCLASS名称。这种情况下,注册WNDCLASS样式半建立窗口有两种方式。方式一,定义一个WNDCLASS结构实例,并对每个字段进行初始化,然后调用::RegisterClass或者MFC的全局函数AfxR...原创 2019-12-03 14:40:35 · 2324 阅读 · 0 评论 -
MFC所有控件的事件和属性
HDN: Header Notify LVN: ListView control Notify NM: Notify Message TVN: TreeView control Notify 1、CButton: 事件: BCN_HOTITEMCHANGE 当鼠标进入或离开此按钮空间区域时发生该事件 2、CListCtrl: 2.1事件: NM_CLICK 用户单击列表时发送此消...原创 2019-11-20 17:32:32 · 1412 阅读 · 0 评论 -
windows消息映射宏的种类
1)用于Windows消息的宏,前缀为“ON_WM_”这样的宏不带参数,因为它对应的消息和消息处理函数的函数名称、函数原型是确定的。MFC提供了这类消息处理函数的定义和缺省实现。每个这样的宏处理不同的Windows消息。例如:宏ON_WM_CREATE把消息WM_CREATE映射到OnCreate函数,消息映射条目的第一个成员nMessage指定为要处理的Windows消息的ID,第二个成...原创 2019-11-20 16:55:53 · 483 阅读 · 0 评论 -
MFC自绘控件
1.C++中DrawItem()函数不被调用的问题自绘一个CMyButton的时候,在DrawItem()中改变了button的颜色,但是在程序执行时,DrawItem()函数并没有被执行,原因在于按钮的类型并不是BS_OWNERDRAW,所以我们需要把它改为“所有者绘制”。解决方法:可以重载一个PreSubclassWindow()函数,在该函数中调用ModifyStyle()函数来...原创 2019-11-20 15:03:18 · 436 阅读 · 0 评论 -
MFC基于对话框的代码OnPaint、OnQueryDragIcon、OnSysCommand
3.创建对话框的代码3.1 OnPaintvoid CDrawButtonDlg::OnPaint() //接收到绘图消息WM_PAINT时调用此函数!{ //是否为最小化窗口 if (IsIconic()) { CPaintDC dc(this); // device context for painting 用于画图 //图标背景删除 SendMessage(WM...原创 2019-11-20 14:57:26 · 2179 阅读 · 0 评论 -
“添加”功能的判断条件
父窗口中的“添加”按钮中添加子窗口列表中的一行,需要检测子窗口对象dlgResAlg的列表m_resAlgrithm中是否有选中!不能用全局变量!!!因为全局变量--生命周期是整个源文件。如果源文件没有执行完,那么这个全局变量仍然会保存之前的值!这里的dlgResAlg窗口对象,声明在当前的这个父窗口类的头文件中,当前这个父窗口关闭的时候,会将dlgResAlg窗口对象也析构了!所以,声明...原创 2019-11-17 19:43:11 · 175 阅读 · 0 评论 -
树控件 获取鼠标点击项
经常获取到的鼠标点击项并不是真正的点击项://这里不能打断点,不然GetCursorPos(&point)值不对CPoint point; UINT uFlags = 0;GetCursorPos(&point);//获得鼠标点击的位置m_treProcessTest.ScreenToClient(&point);//转化为客户坐标//m_treProces...原创 2019-11-15 15:02:25 · 230 阅读 · 0 评论 -
列表中选择的行号 列号
1.注意,如下代码无法得到行号,返回经常返回-1int iSelRow = m_listProcTest.GetSelectionMark(); //返回列表中选择的行数应该在列表的点击事件的响应函数中:void CDlgTest::OnNMClickListProcesstest(NMHDR *pNMHDR, LRESULT *pResult){ // TODO: Add...原创 2019-11-15 14:55:36 · 385 阅读 · 0 评论 -
CString与string转换
宽字节字符集(Unicode)、多字节字符集(Multi-Byte) 自适应:CString 转 stringCString cstrTest = _T("test");string strTest;string = CT2A(cstrTest);string 转 CStringstring strTest="test";CString cstrTest;cstrTest...原创 2019-11-14 18:13:58 · 237 阅读 · 0 评论 -
CString的Trim()方法和TrimStrat()和TrimEnd()方法,TrimRight()和TrimLeft() 方法
一、CString的Trim()方法和TrimStrat()和TrimEnd()方法。这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。注意:如果这三个函数...原创 2019-11-02 21:15:03 · 5183 阅读 · 0 评论 -
自定义的消息为什么能发挥作用?
自定义的消息为什么能发挥作用(系统如何知道这个什么消息-比如鼠标弹起消息)?是因为消息UM_FTC_EVVIEW_ROI_MOUSEMOVE 和函数 &CDlgTBDictionarySetup::OnEviewRoiMousemove建立了映射关系。当产生了UM_FTC_EVVIEW_ROI_MOUSEMOVE消息,系统就会调用&CDlgTBDictionarySetup...原创 2019-10-31 00:05:12 · 129 阅读 · 0 评论 -
CString Format
注意:CString类型的格式化中,%s表示字符串占位符,这个占位符必须用CString类型的值填充!而不是string类型!例1:CString szImgName;szImgName.Format(_T("%s"),_T("ROI")); //这里不能是string类型的"ROI",而应该转变为CString类型的_T("ROI") 例2:CString szImgName...原创 2019-10-30 22:58:55 · 563 阅读 · 0 评论