MFC
文章平均质量分 80
MFC的语法和应用。
WaitFoF
没有太晚的开始,不如就从今天行动。
总有一天,那个一点一点可见的未来,会在你心里,也在你的脚下慢慢清透。
生活,从不亏待每一个努力向上的人。
展开
-
基础语法篇_12——网络编程
文章目录一、计算机网络基础知识1. 1 IP地址1.2 协议1.3 网络的状况1.4 网络异质性问题的解决1.5 ISO/OSI 七层参考模型1.6 数据封装1.7 TCP/IP模型1.8 端口1.91.10 网络字节顺序二、Windows Sockets的实现2.1 套接字的类型2.2 基于TCP (面向连接)的socket编程2.3 基于UDP (面向无连接)的socket编程一、计算机网络基础知识计算机网络是相互连接的独立自主的计算机的集合,最简单的网络形式是由两台计算机组成。计算机A通过网络与原创 2021-03-11 15:46:04 · 318 阅读 · 0 评论 -
MFC——SkinSharp For VS的使用说明
文章目录1. 库文件2. SkinSharp For VS的使用方法3. 皮肤样式1. 库文件2. SkinSharp For VS的使用方法新建一个MFC对话框工程。将换肤库头文件和链接库文件SkinH.h,SkinH_lib拷贝到工程的目录下:在预编译头文件pch.h中,添加换肤库头文件以及链接库:#include "SkinH.h"#pragma comment(lib, "SkinH.lib")在主对话框的OnInitDialog成员中添加换肤命令SkinH_原创 2021-01-29 16:03:30 · 1011 阅读 · 7 评论 -
MFC——SkinMagic皮肤使用说明
文章目录1. 插件文档2. 使用说明2.1 项目字符集选择:未设置2.1.1 使用方法2.1.2 存在问题2.2 项目字符集选择:UNICODE2.2.1 使用方法2.2.2 存在问题3. 皮肤信息说明1. 插件文档2. 使用说明2.1 项目字符集选择:未设置2.1.1 使用方法首先建立自己的MFC程序;将SkinMagicTrial.lib、SkinMagicTrial.dll和SkinMagicLib.h拷贝到项目根目录下;把Skins文件夹放在项目根目录下;将Ski原创 2021-01-28 17:14:07 · 1497 阅读 · 0 评论 -
High-speed Charting Control 控件使用
最近使用High-speed Charting Control 控件实时绘制波形,总结一下有用的资源:High-speed Charting Control控件的开发资料:High-speed Charting Control,作者提供了英文版的API文档说明,以及相关的Demo测试实例。????????Github上的链接:ChartCtrl被翻译成中文版的资料:中文版——High-speed Charting Control初级使用对于Hight-Speed Charting的使用,详转载 2021-01-15 22:56:31 · 2404 阅读 · 0 评论 -
VS2019+OpenGL配置:绘制3维图
文章目录1. 准备工作1.1 查看OpenGL版本1.2 Windows上的OpenGL库1.3 建一个文件夹OpenGL1.4 创建一个新项目OpenGLMFCTest2. GLFW2.1 下载和配置2.2 验证3. GLAD3.1 下载和配置3.2 验证4. GLM4.1 下载和配置4.2 验证5. GLUT5.1 下载和配置5.2 验证6. GLEW6.1 下载和配置6.2 验证7. 实例演示Debug+x64版Release+x64版最近需要在MFC上面画3维图,记录一下配置OpenGL库的过程。原创 2020-10-28 22:54:49 · 6538 阅读 · 8 评论 -
MFC实战篇——“另存为对话框”和“打开对话框”——读写float型数据——二进制文件中
文章目录1. 另存为对话框2. 打开对话框2.1 读取到数组中2.2 读取到Mat中1. 另存为对话框MFC弹出保存对话框,将float型Mat数据写入二进制文件:void CProp1::OnBnClickedButton6(){ // TODO: 在此添加控件通知处理程序代码 //另存为: //默认文件名:KB_Y-M-D_h-m-s.dat SYSTEMTIME str; GetLocalTime(&str); CString fileName; CString he原创 2020-10-22 16:58:24 · 891 阅读 · 1 评论 -
屏蔽4996警告
屏蔽警告4996#pragma warning(disable: 4996)原创 2020-03-12 21:59:39 · 1155 阅读 · 0 评论 -
MFC实战篇——提示框随鼠标移动动态响应
文章目录1. 新建对话框项目2. 添加一个CToolTipCtrl变量3. 在对话框OnInitDialog()中加载提示框4. 重写对话框的PreTranslateMessage消息5. 添加鼠标移动响应函数为鼠标添加动态的提示框。当鼠标在图片控件的图像区域中移动时,动态跟新鼠标移动过程中图像的像素。1. 新建对话框项目2. 添加一个CToolTipCtrl变量在对话框头文件ADDToolTipDlg.h中添加一个相应的CToolTipCtrl类型的变量:CToolTipCtrl m_t原创 2020-09-22 17:08:13 · 1119 阅读 · 1 评论 -
MFC实战篇——添加鼠标右键响应菜单
文章目录一、新建MFC对话框项目二、添加菜单资源三、添加右键响应函数3.1 方法一:WM_CONTEXTMENU响应函数方法2:WM_RButtonDown响应函数四、添加菜单响应函数五、测试六、升级版一、新建MFC对话框项目二、添加菜单资源添加一个主菜单和3个子菜单。三个子菜单的ID分别为:三、添加右键响应函数3.1 方法一:WM_CONTEXTMENU响应函数在类视图中为对话框添加消息WM_CONTEXTMENU的响应函数。在响应函数中添加代码,加载指定的菜单:v原创 2020-09-21 22:19:11 · 5702 阅读 · 3 评论 -
MFC实战篇——线程的创建和多线程简单示例
文章目录一、基本概念1.1 进程1. 程序和进程2. 进程组成3. 进程的组成1.2 线程1. 线程组成2. 线程运行3. 单线程程序和多线程程序二、线程创建函数2.1 声明2.2 参数三、简单多线程实例四、线程同步4.1 火车站售票模拟程序4.2 多线程程序容易出现的问题4.3 利用互斥对象实现线程同步1. CreateMutex函数2. ReleaseMutex函数3. WaitForSingleObject函数一、基本概念1.1 进程1. 程序和进程程序是计算机指令的集合,它以文件的形式存储在原创 2020-09-17 21:52:26 · 4360 阅读 · 3 评论 -
MFC基础知识篇——在共享DLL中使用MFC和在静态库中使用MFC的区别
创建MFC对话框程序时,使用MFC有两个选项:在共享DLL中使用MFC在静态库中使用MFC在共享DLL中使用MFC在共享DLL中使用MFC指:打包时,一些MFC的DLL的内容没有被包含在程序的EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。在静态库中使用MFC在静态库中使用MFC 指:将DLL对应的lib静态库中的相关代码硬编码到EXE文件中,文件较大,但是可以在没有已经被包含DLL的机器上运行,可移植性好。当然即使如此也并非所有的DLL都会将其硬编码到Exe中原创 2020-05-08 21:36:50 · 1647 阅读 · 1 评论 -
MFC实战篇——基于对话框的MFC界面添加菜单栏
一、方法一先添加菜单资源:为新建的菜单栏资源更改属性ID,并加上需要的菜单项。打开编辑对话框资源IDD_···_DIALOG的属性框,在属性对话框选项中找到Menu选项,并选择刚刚创建的菜单栏ID即可。运行程序:二、方法二先创建一个变量:在对话框Dlg类中的OnInitDialog中添加如下代码://加载菜单m_menu.LoadMenu(IDR_MyMenu);...原创 2020-04-07 18:17:20 · 1840 阅读 · 0 评论 -
MFC实战篇——分页功能
文章目录项目介绍一、创建项目二、添加3个分页对话框资源1. 创建注册对话框2. 创建三个分页2.1 第一个分页2.2 第二个分页2.3 第三个分页三、定制对话框界面内容1. 默认生成的父对话框内容定制2. 注册对话框内容定制2. 分页1对话框内容定制3. 分页2对话框内容定制4. 分页3对话框内容定制四、为每个对话框添加MFC类1. 添加注册MFC类2. 添加页面1的MFC类3. 添加页面2的MF...原创 2020-05-08 00:50:49 · 2607 阅读 · 0 评论 -
基础语法篇_11——坐标空间和转换,图形的保存和重绘,元文件
一、坐标空间和转换Microsoft Windows下的程序运用坐标空间和转换来对图形输出进行缩放、旋转、平移、斜切和反射。1.1 坐标空间一个坐标空间是一个平面空间,通过使用两个相互垂直并且长度相等的轴来定位二维空间:Win32应用程序编程接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间和物理设备空间。应用程序运用世界坐标系空间对图形输出进行旋转、斜切或者反射。Win...原创 2020-04-02 16:44:42 · 441 阅读 · 0 评论 -
MFC实战篇——点击按钮,保存图片
//保存void CCameraLinkTestDlg::OnBnClickedSave(){ // TODO: 在此添加控件通知处理程序代码 if (mat.empty()) { MessageBox(_T("请先进行图片捕获!")); return; } SYSTEMTIME str; GetLocalTime(&str); CString timePath;...原创 2020-03-22 16:39:31 · 1286 阅读 · 0 评论 -
MFC实战篇——一对一网络聊天室程序
CWinThread* AFXAPI AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);CWinThread* AFXAPI AfxBeginThrea原创 2020-09-17 21:57:06 · 3769 阅读 · 4 评论 -
MFC实战篇——鼠标点击处显示图像像素
mat:成员变量,存放mat图像widthPicCtrl:图像控件的宽度width:mat图的宽leftTop:图像控件的左上角坐标heightPicCtrl:图像控件的长度height:mat图的高//获取鼠标点击处的像素值void CCameraLinkTestDlg::OnLButtonDown(UINT nFlags, CPoint point){ // TODO...原创 2020-03-22 16:51:23 · 881 阅读 · 0 评论 -
MFC实战篇——图片旋转、控件PictureControl 清除显示、伪彩、直方图显示、为按钮添加背景图标、设置程序图标
建立图片控件改变图片控件ID建立四个按钮改变四个控件ID从上到下依次为:IDC_LEFTTURN90DEGREESIDC_RIGHTTURN90DEGREESIDC_FLIPHORIZONTALIDC_FLIPVERTICALLY建立三个私有的坐标,存左上角坐标,宽,高private: // 左上角坐标,宽,高 CPoint leftTop; int im...原创 2020-03-22 15:44:40 · 2420 阅读 · 0 评论 -
MFC实战篇——解决用类向导添加MFC类,基类列表没有CPropertyPage类。
再新建一个MFC AppWizard (exe)工程,看一下这个向导提供的功能,工程取名为: Prop, AppWizard的第一步窗口如图8.17所示。首先,该对话框中要求用户选择生成哪种类型的应用程序;单文档(Single document)、多文档(Multiple documens),还是基于对话框(Dialog based)的应用程序。其中如果选择Single document选项,将生...原创 2020-03-01 20:45:23 · 2380 阅读 · 0 评论 -
MFC问题篇——对话框“消息”中找不到WM_INITDIALOG
为对话框添加WM_INITDIALOG消息映射时,在“消息”中找不到WM_INITDIALOG。???????? 原因:VS2003开始已经将WM_INITDIALOG移到了重写里面,重写里面有一个OnInitDialog,对应了VC6.0的 WM_INITDIALOG消息。???????? 解决方案:在类视图上选中自己创建的对话框类,右键选择属性,属性视图上有六个按钮,点第六个重写按钮就显示了所有该类可以重载的函数...原创 2020-02-27 15:42:11 · 1564 阅读 · 0 评论 -
MFC实战篇——客户区坐标与屏幕坐标转换,获取对话框中控件的坐标,获取鼠标点击处的像素值
文章目录一、客户区坐标与屏幕坐标转换1. GetWindowRect2. GetClientRect3. ClientToScreen4. ScreenToClient5. 对话框中控件的坐标二、实例1. 获取图像控件的坐标信息2. Mat图片显示在MFC图片控件中3. 获取鼠标点击处的像素值一、客户区坐标与屏幕坐标转换????????????坐标包含两种:屏幕坐标屏幕坐标是指你的显示器的左上角(0,...原创 2020-04-01 23:44:48 · 7078 阅读 · 2 评论 -
MFC问题篇——解决DockControlBar(&m_newToolBar)引起的问题
MFC创建自己的工具栏时,在CMainFrame类头文件中添加一个CToolBar类型的成员变量,private: HICON m_hIcons[3]; CToolBar m_newToolBar;调用Create或CreateEx函数创建Windows工具栏,并把它与已创建的CToolBar对象关联起来。在CMainFrame类的OnCreate函数中实现。int CMainFra...原创 2020-03-05 18:05:38 · 2562 阅读 · 1 评论 -
MFC实战篇——CString,int,LPARAM之间的转换
CString——————————>intCString strNum(_T("100"));int num;num = _ttoi(strNum);//num = atoi(strNum);CString<——————————intint i = 123;CString str ;str.Format(_T("%d"), i);CString——————————...原创 2020-02-26 21:13:09 · 1621 阅读 · 0 评论 -
MFC实战篇——基于vs2017+MFC实现简易计算器的实例
打开vs2017新建–&amp;amp;gt;项目–&amp;amp;gt;visual c++,找到visual’c++下的MFC选项。若此时发现找不到MFC模块,则说明在安装C++时未安装MFC。解决方法:找到Visual Studio Installer并打开。点击修改之后,在使用c++的桌面开发里勾选上“对于X86和X64的visual c++ MFC&amp;quot; ,然后点击修改。等待其下载与安...原创 2018-10-15 10:31:26 · 17799 阅读 · 8 评论 -
MFC实战篇——VS实现基于MFC的串口通信程序实例
串口通信的概念串口通行是一种将接受来自cpu的并行数据字符转化为连续的串行数据流发送出去,同时可将接收的串行数据流转化为并行的数据字符供给cpu的器件。串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口通信指串口按位(bit)发送和接收字节。尽管比按字节(b...原创 2018-10-15 11:34:45 · 23228 阅读 · 18 评论 -
基础语法篇_10——设置对话框、颜色对话框、字体对话框、示例对话框、改变对话框和控件的背景及文本颜色、位图显示
文章目录一、简单绘图二、设置对话框2.1 设置线宽2.2 设置线型新建一个单文档类型的MFC工程,取名:Graphic。此程序将实现简单的绘图功能。一、简单绘图实现简单的绘图功能,包括点、直线和椭圆的绘制。为了实现这些功能:⭕⭕1)首先为此程序添加一个子菜单,菜单名称为“绘图”;⭕⭕2)为其添加四个子菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选...原创 2020-03-09 19:36:13 · 2072 阅读 · 1 评论 -
基础语法篇_9——VS2019+MFC:修改应用程序窗口的外观【窗口光标|图标|背景】、模拟动画图标、工具栏编程、状态栏编程、进度栏编程、在状态栏上显示鼠标当前位置、启动画面
一、修改应用程序窗口的外观 对于MFC应用程序来说,为了改变MFC AppWizard自动生成的应用程序外观和大小,既可以在应用程序窗口创建之前进行,也可以在该窗口创建之后进行。首先新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为: Style。运行程序如下:1.1 窗口创建之前修改如果希望在应用程序窗口创建之前修改它的外观和大小,就应该在CMainFrame...原创 2020-03-06 17:51:27 · 4930 阅读 · 0 评论 -
基础语法篇_8——MFC:如何在对话框程序中让对话框捕获WM_KEYDOWN消息
想要让对话框(子控件的父窗口)类响应按键消息,则可以通过类向导对WM_KEYDOWN消息进行响应,当程序运行后,按下键盘上的按键,但对话框不会有任何的反应。这是因为在对话框程序中,某些特定的消息,例如按键消息,它们被Windows内部的对话框过程处理了(即在基类中完成了处理,或者被发送给子控件进行处理,所以在对话框类中就捕获不到按键的消息了。可以找到底层处理按键消息的函数,然后在子类中重载它,便...原创 2020-03-02 22:12:45 · 1036 阅读 · 0 评论 -
基础语法篇_7——MFC对话框:逃跑按钮、属性表单、向导创建
文章目录一、基于对话框的程序二、“逃跑”的按钮三、属性表单和向导的创建3.1 创建属性页一、基于对话框的程序新建一个基于对话框的项目,项目名称:DlgTest。生成的项目结构为:解决方案结构:类视图下有三个类:CAboutDlg派生于CDialog类,这个类与SDI应用程序中相应的类:CAboutDlg作用相同,用于显示一个关于对话框。CDlgTestApp这是MFC应用...原创 2020-03-02 21:17:48 · 1827 阅读 · 0 评论 -
基础语法篇_6——对话框的创建与显示、动态创建按钮、控件的访问【控件调整|静态文本控件|编辑框控件】、对话框伸缩功能、输入焦点的传递、默认按钮的说明
文章目录一、基本知识1.1 常用控件介绍一、基本知识对话框就是一个窗口,它不仅可以接收消息,而且可以被移动和关闭,甚至可以在客户区进行绘图。对话框相当于一个容器,在它上面能够放置各种各样的标准控件和扩展控件,使程序支持用户输入的手段更加丰富。1.1 常用控件介绍在MFC中,所以的控件类都由CWnd类派生的。因此控件也是窗口。通常控件作为对话框的子窗口而创建的。控件也可以出现在视类窗口、工具...原创 2020-02-27 20:04:29 · 1856 阅读 · 0 评论 -
基础语法篇_5——菜单命令响应函数、菜单命令的路由、基本菜单操作、动态菜单操作、电话本实例
文章目录一、菜单命令响应函数二、菜单命令的路由2.1 程序类对菜单命令的响应顺序2.2 Windows消息的分类2.3 菜单命令的路由菜单栏、工具栏和状态栏是组成Windows程序图形界面的三个主要元素。先创建一个单文档的应用程序。一、菜单命令响应函数运行上面创建的应用程序,可以发现MFC已经帮我们创建了一些菜单。点击资源视图选项卡,可以看到Menu菜单下的一个名为IDR_MAI...原创 2020-02-22 22:36:29 · 1655 阅读 · 0 评论 -
基础语法篇_4——插入符【文本插入符|图形插入符】、窗口重绘、路径、字符输入【设置字体|字幕变色】
文章目录一、插入符1. 创建文本插入符2. 创建图形插入符二、窗口重绘2.1 OnDraw函数2.2 添加字符串资源三、路径四、字符输入一、插入符1. 创建文本插入符创建插入符,可以利用CWnd类的createSolidCaret)函数完成。该函数原型声明一下:void CreateSolidCaret(int nWidth,int nHeight)nWidth: 指定输入符号的...原创 2020-02-19 16:27:34 · 1821 阅读 · 0 评论 -
基础语法篇_3——绘制线条 【SDK全局函数、CDC类、CClientDC类、CWindowDC类、在桌面窗口、绘制彩色线条】、画刷绘图【简单画刷、位图画刷、透明画刷】、绘制连续线条、绘制扇形效果线条
一、绘制线条在创建的单文档程序中实现绘画线条功能。1)在view类中添加单击鼠标左键事件WM_LBUTTONDOWN。自动生成的类如下:void CMFCTestView::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CView::OnLButtonDown(nFlags, poin...原创 2020-02-12 20:17:10 · 1566 阅读 · 1 评论 -
基础语法篇_2——MFC的程序框架
文章目录一、基于MFC的程序框架剖析一、基于MFC的程序框架剖析MFC库是开发Windows应用程序的C++接口。MFC提供了面向对象的框架,将大部分的Windows API封装在C++类中,以类成员函数的形式提供给程序开发人员调用。例如如下单文档的类视图:在MFC中,类的命名都以字母“C”开头。对于单文档应用程序,都有:一个CMainFrame类一个“C+工程名+App”为名字的...原创 2020-02-10 16:45:47 · 274 阅读 · 0 评论 -
基础语法篇_1——Windows程序内部运行机制
文章目录一、API与SDK二、窗口与句柄1. 窗口2. 句柄三、消息与消息队列1. 消息2. 消息队列3. 进队消息和不进队消息四、WinMain函数1. WinMain的定义2. 窗口的创建2.1 设计一个窗口类2.2 注册窗口类2.3 创建窗口2.4 显示及更新窗口一、API与SDKAPI:Windows操作系统提供了各种各样的函数,这些函数是Windows操作系统提供给应用程序编程的接口...原创 2020-02-10 15:46:22 · 309 阅读 · 0 评论