当前位置: 首页 > news >正文

MFC新建内部消息

提示:记录一下MFC新建内部消息的成功过程

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

先说一下基本情况,因为要在mapview上增加一个显示加载时间的功能。然后发现是要等加载完再显示时间,显示在主窗口。所以就是在子线程中发送消息给窗口的问题。查了不好资料,最后实现了。


提示:以下是本篇文章正文内容,下面案例可供参考

一、第一阶段

先是百度的,知道了异步消息postMessage,::PostMessage(hWinHandle, ADD_NUM, 1, 1);决定要postmessage发送消息。一开始的写法是::PostMessage(NULL, ADD_NUM, 0, 0),同时创建了ADD_NUM,即#define ADD_NUM  (WM_USER+101)。然后在CMainDlg类中分别加了,

BEGIN_MESSAGE_MAP(CMainDlg, CDialogEx)ON_COMMAND(ADD_NUM, &CMainDlg::AddNum)
END_MESSAGE_MAP()

LRESULT CMainDlg::AddNum(WPARAM w, LPARAM l)
{MessageBox(_T("输入经纬度值不正确!"));return 0;
}

 和

afx_msg LRESULT AddNum(WPARAM w, LPARAM l);

但是,

加上以上的代码调试没有用。 

二、第二阶段

1.看bilibili视频

下班路上和下班到家看了大衣哥的b站视频,根据他的代码重新确认了一下这个方案的可行性,而且改了一个错误,即这边要改成

BEGIN_MESSAGE_MAP(CMainDlg, CDialogEx)ON_MESSAGE(ADD_NUM, &CMainDlg::AddNum)
END_MESSAGE_MAP()

第二天早上上班改了试了一下,还是不能触发消息。

但是这时候已经确定是因为没有获取窗口句柄的原因,其他地方都对比了基本和大衣哥视频是一致的。

所以接下来的任务就是找到一个能在子线程获取窗口句柄的方法。

三、第三阶段

1.继续百度

搜到了这个帖子:MFC之使用FindWindow函数获取指定窗口句柄进行窗口操作(实测:关闭Windows的格式化弹窗)_mfc findwindow_kifea的博客-CSDN博客

根据他的代码看了一下差别,最重要的是它提供了一个新的获取句柄的方法。 

获取窗口类名或窗口名的方法(spy++使用方法-百度经验)

根据他的方法,是在vs工具菜单栏下,点击spy++按钮,

然后进入spy++菜单

点击 spy++ 工具栏中的 望远镜 图标,弹出一个“窗口搜索”的对话框。在“窗口搜索”对话框中,鼠标左键在 查找程序工具 后面的 图标 处按下不放,将此图标拖移到我们想要知道信息的窗口内,再松开鼠标。

“窗口搜索”对话框内将显示该要查找信息的窗口的句柄、标题和类名。查看完毕后,单击确定。

然后再代码中修改获取句柄的代码

HWND hWinHandle = NULL;WNDCLASS m_WindClass1;	//隐藏窗口类m_WindClass1.lpszClassName = _T("MapViewer 1.0001(build 0001)");::RegisterClass(&m_WindClass1);hWinHandle = ::FindWindow(_T("#32770"), _T("MapViewer 1.0001(build 0001)"));if (hWinHandle){::PostMessage(hWinHandle, ADD_NUM, 1, 1);}

现在可以触发消息了。

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

http://www.lryc.cn/news/157753.html

相关文章:

  • linux查找目录
  • 机器学习:可解释学习
  • UE5- c++ websocket里实现调用player里的方法
  • 线性代数的学习和整理18:什么是维度,什么是秩?秩的各种定理秩的计算 (计算部分未完成)
  • Centos 6.5 升级到Centos7指导手册
  • 详解python中的映射类型---字典
  • gdal求矢量图形的形心
  • <深度学习基础> Batch Normalization
  • Ubuntu yolov5 环境配置
  • 【自执行闭包JS逆向】某网站登录MD5加密分析
  • Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明
  • 【Linux】- 一文秒懂shell编程
  • CentOS下多网卡绑定多IP段时导致只有一个会通的问题解决
  • 关于实现 Vue 动态数据显示,比如数字 0 或 1 怎么显示为 男 或 女等等的动态显示实现方法
  • mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器
  • Unix System V BSD POSIX 究竟是什么?
  • 数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式
  • 【高阶数据结构】红黑树 {概念及性质;红黑树的结构;红黑树的实现;红黑树插入操作详细解释;红黑树的验证}
  • 获取对象占用内存
  • mysql UUID 作为主键的问题
  • 2023高教社杯全国大学生数学建模竞赛选题建议
  • 分类预测 | MATLAB实现GRNN广义回归神经网络多特征分类预测
  • 低功耗窗帘电机解决方案成功应用并通过 Matter 1.1 认证
  • 如何修复老照片?老照片修复翻新的方法
  • MySQL:区分大小写
  • 刷题笔记19——优势洗牌和去重保持字典序
  • 星际争霸之小霸王之小蜜蜂(十一)--杀杀杀
  • 腾讯云免费SSL证书申请流程_每年免费50个HTTPS证书
  • C#上位机开发目录
  • 网络通信基础