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

使用OpenTK展示3D点云图像(C#) 图中存在一个空的点,可通过阈值分割过滤掉,然后如何保证某个点必然存在后面两个和它构成三角形的点,用一个2x2的结构元腐蚀阈值分割出的区域,得到剩下所有的点必然每个点可以构成三角形,这种得到三角形的算法效率会非常高。然后还有光照,无光照和有光照效果差异很大,处理光照核心在于得到每个点的法向量,用上面的三角形的两条边构成的向量叉乘,及得到这个点的法向量,输入给着色器处理得到光照的渲染效果,如下面两张图对比。我们需要把点连成面,有很多算法可以实现,但我拿到的图为一张tif格式16位的深度图,如下图。 阅读详情

一、新建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上可以获取鼠标的横纵坐标

Tiff、jpg图片怎么样添加地理坐标信息 Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方 阅读详情

相关推荐

别再死记硬背了!用Python可视化带你直观理解柯西收敛定理(附NumPy代码)

本文通过Python可视化技术,结合NumPy和Matplotlib,直观展示柯西收敛定理的动态过程。文章提供了完整的代码实现,帮助读者从抽象数学定义过渡到具象理解,特别适合数学学习者和Python开发者。通过热力图和交互式参数探索,读者可以清晰观察数列收敛特性,提升数学分析的学习效率。

weixin_28465009的博客 185

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

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

liutit的博客 625

Ubuntu无桥接模式或连不上网(详细解决方法

目录 问题1:Ubuntu没有未桥接的主机网络适配器 解决方法 1.打开VMware安装目录下的文件 ​编辑2.右键安装以上三个文件 3.打开网络状态属性,找到VMware bridgeProtocol,点击安装 问题2.Ubuntu桥接模式连不上网 1.win+r打开cmd终端,输入ipconfig /all 2.记录以下数据 3.打开VMware网络设置 问题1:Ubuntu没有未桥接的主机网络适配器 VMWare安装之后,虚拟网络一直使用默认配置 VMnet0为...

m0_65592409的博客 6062

MFC应用程序中的the App

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

小凡的专栏 3214

Adaboost入门教程——最通俗易懂的原理介绍(图文实例)

Adaboost入门教程——最通俗易懂的原理介绍(图文实例)

Max的杂物仓 11万+

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 591

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

MFC发消息

qq_19272431的博客 1191

作物生长模型Oryza V3实战9:控制文件参数详解

control.dat是ORYZA水稻模型的核心配置文件,主要包含三部分:1)基础参数设置与模拟时间定义;2)关键文件路径配置,包括土壤参数文件(soil.sol)、作物参数文件(cultivar.crp)、田间管理文件(manage.exp)及气象数据目录,同时指定输出结果文件(res.dat)和运行日志(model.log);3)可选参数和输出控制选项。该文件通过关联各类输入数据(气象、土壤、品种特性等)和输出结果,实现模型运行的全流程控制,支持参数调整后继续模拟和中断恢复功能。

219

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

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

Hello_MyDream的博客 2万+

Android系统去掉长按webview界面弹框中的分享功能

Android 系统去解决长按显示内容,去掉分享功能,不论那个界面,是所有界面都需要满足。如果仅仅去掉系统自带的,那么系统来处理如果客户自定义,部分App自定义的菜单项,不是调用系统的,那么还是需要应用去解决的。之前做过Editext,其实还需要去TextView,最难点的就是WebView中的HTML了 去分享功能了。WebView中涉及到分享功能菜单的界面,/***//***//***//***//***//***//***//***//**

十年饮冰,难凉热血 1017

LeRobot 官方论文:一个用于端到端机器人学习的开源库

本文介绍了一个名为LeRobot的开源库,旨在解决机器人学习领域的碎片化问题。该库提供了端到端的技术栈,包括统一的机器人中间件API、标准化的数据集格式(LeRobotDataset)、优化的推理栈以及多种最先进机器人学习算法的实现。LeRobot支持多种低成本开源机器人平台(如SO-10X、ALOHA-2等),通过共享中间件实现便捷的遥操作和数据收集。其数据集格式已广泛应用于社区,截至2025年9月已有16,000多个数据集公开共享。该库还支持流式处理大规模数据,降低了研究门槛。在模型方面,LeRobot

2506_90492529的博客 905

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

【32】软考软件设计师——算法题(一):分治法与动态规划深度精讲|下午第4题常考满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第32篇,正式开启**模块四:应用技术(下午题)算法大题专项**,聚焦下午第4道高频必考大题核心两大算法:分治法与动态规划。全文超4000字深度拆解两大经典算法的底层核心思想、算法策略识别技巧、递归边界设计、状态转移方程推导,全覆盖代码填空高频考点、时间复杂度分析、经典题型解题套路;配套可直接默写的递归代码模板、DP状态设计范式、真题完整填空案例,彻底解决考生分不清分治与DP、递归边界写错、状态转移推不出、复杂度算不对四大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 636

复习MFC之clean-温故而知新

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

fa1lr4in的小博客 511

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

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

fa1lr4in的小博客 254

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

fa1lr4in的小博客 260

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

零基础做简易计算器超详细步骤 | 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、付费专栏及课程。

余额充值