复习MFC之消息-温故而知新

Open3D:读写点云与可视化(C++) 迭代 //Open3D #include "Open3D/Open3D.h" //Eigen #include "Eigen/Dense" void testOpen3D::xjGetInformation(const QString &pcPath) { /* read PC */ auto cloud_ptr = std::make_shared<open3d::geometry::PointCloud>(); if (!open3d::io::ReadPointCl 阅读详情

一、新建mfc项目

mfc应用程序

应用程序类型:单个文档

项目类型:MFC标准

完成

 

二、添加标准消息

1、头文件函数声明

 public:
afx_msg void OnLButtonDown(UINT uflag,CPoint point);

2、源文件函数实现

void CMy21View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
::MessageBox(NULL,L”aaaa”,L”提示”,MB_OK);
CView::OnLButtonDown(nFlags, point);
}

3、消息映射表添加消息类型

ON_WM_LBUTTONDOWN()

 

三、三种函数:
//::MessageBox(NULL,L”bbbb”,L”提示”,MB_OK);                //WindowsApi
//this->MessageBox(L”bbbb”);                                          //MFC类的成员函数
//AfxMessageBox(L”bbbb”);                                              //MFC全局函数

 

四、TRACE输出

类似于printf,使用格式完全相同

 

五、命令消息(菜单栏和工具栏和快捷键消息)

菜单栏和快捷键可以通过向导:

右键

添加事件处理程序

工具栏如果添加消息:

MainFrm.h添加声明:

afx_msg void OnToolBar();

MainFrm.cpp添加实现和消息映射:

void CMainFrame::OnToolBar()
{
TRACE(“工具栏\n”);
}

ON_COMMAND(ID_BUTTON32772,&CMainFrame::OnToolBar)

如果有警告,则可能是没有写左下角的提示,在属性上面可以添加

 

六、自定义消息(实现在视图界面点击发送消息给frame)

1、添加LButtonDown消息(右键属性添加)

2、在stdafx.h里面定义宏

#define UM_VIEW_TO_FRAME WM_USER+1

3、在LButtonDown中添加

::SendMessage(AfxGetApp()->m_pMainWnd->m_hWnd,UM_VIEW_TO_FRAME,0,0);

4、声明并定义自定义函数

afx_msg LRESULT ONVIEWTOFRAME(WPARAM wParam, LPARAM lParam);

LRESULT CMainFrame::ONVIEWTOFRAME(WPARAM wParam, LPARAM lParam)
{
TRACE(“CMainFrame::ONVIEWTOFRAME\n”);
return 0;
}

5、完善消息映射

ON_MESSAGE(UM_VIEW_TO_FRAME,CMainFrame::ONVIEWTOFRAME)

6、在LButtonDown中添加

TRACE(“CMy21View::OnLButtonDown\n”);

在frame的消息发送到view

1、添加命令消息(右键添加事件处理程序)

2、在stdafx.h里面定义宏

#define UM_FRAME_TO_VIEW WM_USER+2

3、在On32773中添加(这个和之前的很不一样)

this->GetActiveView()->SendMessage(UM_FRAME_TO_VIEW);

4、声明并定义自定义函数

afx_msg LRESULT ONFRAMETOVIEW(WPARAM wParam, LPARAM lParam);

LRESULT CMy21View::ONFRAMETOVIEW(WPARAM wParam, LPARAM lParam)
{
TRACE(“CMy21View::ONFRAMETOVIEW\n”);
return 0;
}

5、完善消息映射

ON_MESSAGE(UM_FRAME_TO_VIEW,CMy21View::ONFRAMETOVIEW)

6、在On32773中添加

TRACE(“CMainFrame::On32773\n”);

 

七、自定义消息传参

::SendMessage(AfxGetApp()->m_pMainWnd->m_hWnd,UM_VIEW_TO_FRAME,point.x,point.y);

传到了wParam和lParam上可以获取鼠标的横纵坐标

Python:爬取数据出现response.status_code为403解决方法 目录前言1. 原理2. 代码 前言 出现403的返回结果 主要是有些服务器为了防止访问量过大,承受服务器的压力,或者是拒绝你的访问。服务器接收到这个信息,理应返回了这个403的信息 在前一块的代码中解决了 Python:爬取数据出现response.status_code为418解决方法 如果还出现了403的访问错误 可以通过如下解决 1. 原理 服务器拒绝访问,可以通过给服务器登录,获取当前的cookie来得到网址的信任。得以爬取该网址的信息 在head头中加入cookie的信息 具体怎么查找该cooki 阅读详情

相关推荐

Hi3516CV610硬件设计避坑指南:从电源模块到DDR布线实战解析

本文深入解析了Hi3516CV610硬件设计中的关键难点与实战技巧。重点剖析了电源架构的选型陷阱与PCB布局要点,详细阐述了DDR3/L高速布线的等长匹配、信号完整性及端接策略,并提供了MIPI接口与时钟电路的隔离设计指南。旨在帮助工程师规避常见设计错误,提升系统稳定性与可靠性。

ooo22的博客 255

三、MFC消息映射机制实现原理

3)静态函数创建静态结构体(AFX_MSGMAP),第一个元素为类父类的静态结构体(AFX_MSGMAP)地址,第二个元素为上一步创建的静态结构体(AFX_MSGMAP_ENTRY)数组地址。(4)由静态结构体(AFX_MSGMAP)组成的列表(链表头当前类的结构体(AFX_MSGMAP_ENTRY);(2)静态函数创建静态结构体(AFX_MSGMAP_ENTRY)数组,结构体最后一个元素为消息处理函数。(1)由当前类(申明消息处理的类)获取列表头,遍历获取消息处理函数,然后调用消息处理函数。......

liutit的博客 625

树莓派5首次开机保姆级教程(无显示器通过VNC连接树莓派桌面)

选择 Interface Options > VNC > Yes 启用服务。2.在Windows电脑上安装VNC软件。重启树莓派:sudo reboot。3.使用VNC远程访问树莓派桌面。

qq_34184505的博客 2349

MFC应用程序中的the App

MFC应用程序中,无论是基于单文档还是对话框的应用程序,在应用程序类中,都有theApp这个变量, eg:CADOApp theApp;theApp代表应用程序实例~~ 如果我们在应用程序类再定义了一个变量,例如 _ConnectionPtr m_pConnection; 当我们在其他类,比如Dlg类中,想用到m_pConnection这个变量时,可以借助theApp来调用, 例如,在O

小凡的专栏 3214

安装了anaconda,pycharm导入numpy时提示没有该包(模块)?

**问题详情:**我安装了anaconda,在利用Pycharm学习numpy这个库的时候,导入numpy这个包的时候提示我没有nummpy这个模块:No module named numpy.如下图所示。 应该说安装了Anaconda,里边就自带了numpy这个库,就应该能够使用。我一个新手怎么搞得懂呢?于是网上查了查找到了一个解决办法,说是我项目的解释器应该设置为Anaconda安装目录下的python.exe,而不应该是系统自带的:https://blog.youkuaiyun.com/aanndd77/art

qq_39820505的博客 1万+

电动汽车欧标直流充电标准解析

电动汽车和电动汽车充电市场是动态发展的,欧洲也正在努力部署基础设施,以支持欧洲快速增长和多样化的电动汽车充电需求。

网络安全的研究者、新能源行业的追求者 7616

MFC如何在主线程中向view类发消息或是其他类向主框架类发消息

MFC发消息

qq_19272431的博客 1191

matlab计算图像信噪比SNR

【代码】matlab计算图像信噪比SNR。

baidu_34971492的博客 1393

MFC销售系统项目——静态拆分窗口与自定义消息

一. 静态拆分窗口 1、自定义两个类:CSelectView和CDispalyView(它的基类必须是视图类); CSelectView继承于CTreeView,CDispalyView继承于CFormView。 2、CMainFrame类中,声明CSplitterWnd类型的对象: private: CSplitterWnd m_spliter; // 切分窗口类对象 3、重写框架类CMainFrame的OnCreateClient函数:return TRUE; 自己初始化客户..

Hello_MyDream的博客 2万+

视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)

内核模块如何设置? 内核模块是可在运行时动态加载到内核或从内核卸载的代码块。以下是设置内核模块的步骤: 首先,编写内核模块代码。通常使用 C 语言编写,包含必要的头文件,如<linux/init.h>、<linux/module.h>等。在代码中,需要定义模块的初始化函数和清理函数。初始化函数在模块加载时被调用,用于进行模块的初始化工作,如注册设备、分配资源等。清理函数在模块卸载时被调用,用于释放资源、注销设备等。 例如: #include <li

大模型大数据攻城狮的专栏 2204

Python 爬虫教程:美食网站 + 社交平台餐馆评论抓取(评分提取 + 情感分析)

在当今数字化时代,数据无处不在,而爬虫技术则是获取数据的强大工具之一。无论是市场调研、学术研究还是个人兴趣探索,爬虫都能帮助我们从海量的网络信息中提取有价值的数据。本文将通过一个实战案例,带领大家学习如何使用 Python 爬虫技术抓取美食网站和社交平台上的餐馆评论,并进行评分提取与情感分析。通过这个项目,你将掌握爬虫的基本原理、数据解析、以及如何结合情感分析技术来挖掘数据背后的洞察。

u014481728的博客 310

ORA-32773问题解决

1。问题描述 SQL> alter tablespaceTEST RESIZE 50M; alter tablespace TEST RESIZE 50M; * 第 1 行出现错误: ORA-32773: 不支持对小文件表空间TEST 的操作 2。问题分析与解决 SQL> alter database datafile 9 RESIZE 50M; 数据库已更改。...

weixin_30454481的博客 752

BAT031:按列表名单将路径a下的文件夹批量剪切到路径b

摘要:按列表名单将路径a下的文件夹批量剪切到路径b。

qq_31762031的博客 1218

复习MFC之clean-温故而知新

一、新建工程 基于对话框 MFC标准   二、模态 拖按钮的控件,双击进入是他的消息代码 右键那个按钮,添加DLG类COneDlg,其他默认 然后在主对话框的头文件中添加新建对话框的头 #include “OneDlg.h” 然后在按钮的消息代码中添加 COneDlg dlg; dlg.DoModal();   三、非模态 拖按钮的控件,双击进入是他的消息代码 ...

fa1lr4in的小博客 511

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复习MFC之绘图-温故而知新

一、画矩形框 在视图(view)类里面的重绘(ondraw)添加 win32版: HDC dc = ::GetDC(this-&gt;m_hWnd); ::Rectangle(dc,0,0,100,100); ::ReleaseDC(this-&gt;m_hWnd,dc); MFC版: CDC *pDC = this-&gt;GetDC(); pDC-&gt;Rectangle(0...

fa1lr4in的小博客 254

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

复习MFC之截屏-温故而知新

一、对外观的初始化 1、去掉菜单 在oncreate里面把下面代码删除 if (!m_wndStatusBar.Create(this)) { TRACE0(“未能创建状态栏\n”); return -1; // 未能创建 } m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)); 并在后面添...

fa1lr4in的小博客 260

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

零基础做简易计算器超详细步骤 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(上)

目录1 前言2 新建MFC项目3 计算器界面设计4 简易计算器代码5 运行效果6 碎碎念 1 前言 MFC版本:零基础做简易计算器 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(上) Qt版本:零基础做简易计算器 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(下) 在VS2017中,结合MFC做一个简易计算器。 全过程记录在此文,每一步都很详细。 小声哔哔:因为很简单,所以步骤不多。 适合新手用来熟悉MFC的基本操作。 由于

不唐 2516

新申请了一个博客 以后就要记录我的点滴生活了

本来比较懒,觉的似乎有些浪费时间。但是还是觉得应该把有些有意义的东西记下来。将来也好回顾复习下。温故而知新嘛  刚开始学编程,一切都很茫然。学校什么都没教,很多东西都要自己找着学 ,而自己知道的东西太有限,想做的东西太多,要学的东西太多。今天就有点茫然,到底学VC有用否。后来觉的应该坚持去把一件东西学完。越来越发觉自己什么都不会,总觉的时间都不够用。一个即将大三的学生连俄罗斯方块都不会做,太丢人

Athenaer的专栏 1354

时刻督促自己

本来比较懒,觉的似乎有些浪费时间。但是还是觉得应该把有些有意义的东西记下来。将来也好回顾复习下。温故而知新嘛 刚开始学编程,一切都很茫然。学校什么都没教,很多东西都要自己找着学 ,而自己知道的东西太有限,想做的东西太多,要学的东西太多。今天就有点茫然,到底学VC有用否。后来觉的应该坚持去把一件东西学完。越来越发觉自己什么 都不会,总觉的时间都不够用。一个即将大三的学生连俄罗斯方块都不会做,太丢

小虎的空间 792

ora32773:不支持对小文件表空间的操作

1、新建数据库时系统表空间设置的太大,想收缩表空间大小,执行如下语句报错  ora32773:不支持对小文件表空间的操作。 alter tablespace SYSTEM resize 1024m; 2、在确认收缩表空间后的大小大于数据量大小后,执行如下操作收缩表空间: select t.FILE_ID,t.TABLESPACE_NAME,t.BYTES/1024/1024 filesi

张文健的专栏 5228

SSH出现Access Denied解决方法

/etc/ssh/sshd_config中 1、PermitRootLogin由no改为yes 2、AllowUsers root 最后 service ssh restart

fa1lr4in的小博客 8792

hiberfil.sys和swapfile.sys文件的删除

hiberfil.sys的删除方法:管理员打开cmd,然后: powercfg -h off swapfile.sys的删除方法:高级系统设置->高级->性能->设置->高级->虚拟内存->更改->取消打勾(自动管理所有驱动器的分页文件大小)->无分页文件->设置->确定xN ...

fa1lr4in的小博客 5669

操作系统知识盘点(五)(内存管理方式以及其他)

25、非连续分配管理方式 (1)基本分页存储管理方式 在分区存储管理中,要把作业放在一个连续的存储区中,因而会产生碎片问题(外部碎片)。尽管通过拼接方式可以解决碎片问题,但代价较高。如果允许将一个作业存放到许多不相邻接的分区中,那么就可以避免拼接,,从而有效解决外部碎片问题。基于这一思想引入了分页存储管理(或称页式存储管理)技术 1)分页管理 在分页存储管理中,用户作业的地址空间被划分称若...

fa1lr4in的小博客 4999

snort学习以及规则编写

一、结构 CIDF模型(Common Intrusion Detection Framework): 包含事 件生成器(event generator:E-boxes),分析引擎(analysis engines:A-boxes),存储机制(storage mechanisms:D-boxes),以及响应模块(countermeasures:C-boxes) SNORT数据流 snort ...

fa1lr4in的小博客 3136

解决wine中文乱码问题

一、在http://www.font5.com.cn/font_download.php?id=150&part=1237886897下载simsun.ttc字体 二、将simsun.ttc拷贝到linux机器上 三、 vi zh.reg 将下面的内容拷贝到zh.reg中 REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Win...

fa1lr4in的小博客 3115

c++中关于++的优先级等各种问题

前言:之前的一次面试中,被问到了一个关于++的问题,决定分享一波 一、a+++b是先算a++还是先算++b 答:应该先算a++,表达式为((a++)+b) 二、a+ ++b呢? 答:答案很明显 先算++b,表达式为a+(++b) 三、a+++++b? 答:a报错,表达式为不可修改的左值,表达式为((a++)++)+b,a++已经为表达式了,不可以再被++了 四、a+++ ++b? ...

fa1lr4in的小博客 1637
上一篇: 复习win32-温故而知新
下一篇: 复习MFC之外观-温故而知新
fa1lr4in
博客等级 码龄9年 64粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值