MFC如何自定义消息与在线程中向主窗体控件发送数据

在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用) 前一段时间使用MFC写程序的时候,为了实现从一个窗口向另一个窗口发送消息,使用过下面两种方法 /*方法一:通过用SDK的标准API来查找其他对话框窗口返回句柄,并且发送信息 HWND hWnd;  //通过SDK的FindWindow函数得到目标窗口的句柄,TriTest为 阅读详情

如何定义消息:

1.定义消息:
在对话框类的头文件中定义一个自定义消息
#define
WM_MY_MESSAGE WM_USER+100  

2.在类中声明该消息的处理函数:
在该类声明的内部的protected:下声明如:
afx_msg LRESULT MyMessage(
WPARAM wParam,LPARAM lParam);

3.在类的消息映射表中加入映射项
在该类的源文件的消息映射表中添加一条消息处理记录
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)

......

ON_MESSAGE(WM_MY_MESSAGE ,MyMessage)

......

END_MESSAGE_MAP()

4.在类的实现文件中添加该消息的处理函数
 
添加一个消息处理函数,如:
LRESULT CMyDialog::MyMessage(WPARAM wParam,LPARAM lParam)
{
    ........//
数据的处理 

     return 0;
}

 

5.调用SendMessage函数或是PostMesage函数给主窗体发消息,

首先获取主窗体的句柄

HWND hHwnd = GetSafeHwnd();

然后再线程函数里面

DWORD _stdcall ListenProc(LPVOID Param)

{

............

 char *sendstr="需要发送的数据";

 PostMessage(hWnd,WM_MY_MESSAGE,(WPARAM)sendstr,0);
............

 

[MFC]Dialog上的控件MoveWindow时会触发主窗体的WM_MOUSEMOVE 在Timer中让Button控件一段时间调用一次MoveWindow; BOOL CmfctestDlg::OnInitDialog() { SetTimer(0, 1000, nullptr); return TRUE; // return TRUE un 阅读详情

相关推荐

MFC自定义控件使用

在资源视图中

m0_60352504的博客 2115

MFC入门示例之访问对话框控件的7种方法

方法一: 1 //方法一 2 void CMFCApplication2Dlg::OnBnClickedButton1() 3 { 4 int num1, num2, num3; 5 TCHAR ch1[12], ch2[12], ch3[12]; 6 //获取文本值 7 GetDlgItem(IDC_EDIT1)->Ge...

weixin_34161083的博客 443

MFC自定义CDialog类创建模态和非模态窗口的用法

使用类向导添加一个继承自CDialog的自定义类添加名字public :public :public :对于自定义类的添加,有更简单的办法。

m0_60352504的博客 996

MFC中 自定义类访问主对话框控件的方法+别的自定义类发送主对话框进行按键模拟

一、参考: 1、MFC中 自定义类访问主对话框控件的方法 https://www.cnblogs.com/lxt287994374/archive/2013/06/20/3147475.html ①总结:good:知道自定义的类如何访问主对话框,从而调用主对话框的函数 ...

qq_40544338的博客 376

Windows环境下pcl点云库 安装配置全流程(精简、有效)

本文为Windows配置点云库pcl步骤,具体是win10、visual studio 2017、pcl1.11.1。

zaibeijixing的专栏 1万+

别再只会用QTcpSocket了!手把手教你用QSslSocket为你的Qt网络应用加上SSL/TLS加密(附完整代码示例)

本文详细介绍了如何将Qt网络应用从QTcpSocket迁移到QSslSocket,实现SSL/TLS加密传输。通过对比API差异、解析核心机制和提供完整代码示例,帮助开发者快速掌握安全网络编程技巧,有效防范数据窃听和中间人攻击等安全风险。

weixin_30654583的博客 400

MFC中在非主对话框中访问主对话框中的控件,及向主对话框发送消息

MFC中在非主对话框中访问主对话框中的控件,及向主对话框发送消息 问题1.访问主对话框中的控件 首先看如下代码: CDC *pDC = this->GetDC(); //得到当前鼠标点击处的像素值 COLORREF color = pDC->GetPixel(point); int R = GetRValue(color), G = GetGValue(color),

u014267567的博客 646

Matlab2024a安装教程

点击【下一步】。8.选择解压后的【MATLAB R2024a(64bit)】文件夹中【Crack】文件夹下的【licese.lic】,点击【打开】。

qq_64359046的博客 4800

MFC关于自定义消息(线程给主窗口发消息)(主窗口给线程发消息)实例

前言 老听公司的老哥们说MFC基于消息机制什么的巴拉巴拉一大堆,实际上自己并没有真真用过,每次看讲解什么的也是一知半懂,像我这种半路出家的,不遇到实际问题根本就搞不懂.由于目前做到公司的项目,按照需求,需要用到消息机制,索性就一次搞个明白 我理解的信号就是当线程或主线程执行完某一步,需要把当前执行的结果反馈给主线程或线程,这时候通过一个消息符号(自定义),该消息符号约定了具体做什么(接收到该信...

她的吻让他 6387

火山引擎实时对话AI实战:5分钟搞定WebRTC+大模型+ASR/TTS全链路集成

本文详细介绍了如何利用火山引擎的实时对话AI解决方案,快速集成WebRTC、大模型、ASR和TTS服务,构建低延迟、高保真的实时语音对话应用。通过实战代码示例,从环境准备、音频流管理到全链路串联与性能优化,为开发者提供了一套端到端的集成指南,适用于智能客服、在线教育等互动场景。

weixin_29051245的博客 1128

【OCPP】ocpp1.6J协议框架说明

本文档的目的是为读者提供创建正确的可互操作 OCPP JSON 实现 (OCPP-J) 所需的信息。我们将根据我们自己的经验,尝试解释什么是强制性的、什么是良好做法以及什么是不应该做的。毫无疑问,误解或歧义仍然存在,但我们旨在通过本文件尽可能地防止它们。IANA:互联网数字分配机构(OCPP-J:使用JSON通过WebSocket进行OCPP通信。特定的OCPP版本应使用J扩展进行指示。OCPP1.5J表示我们正在讨论1.5版本的JSON/WebSocket实现。

qq_53871375的博客 1239

MFC之使用 Windows 标准控件

使用 Windows 标准控件 为了提高常用代码的复用性,VC 使用控件将常用的诸如用户输入、操作数据等功能封装起来。控件通常放在对话框或工具栏中,分为 3 种:Windows 标准控件、ActiveX 控件和 MFC 支持的其他控件类。 一、Windows 标准控件 1、常用 Windows 控件 控件 MFC 类 说明 按钮控件 CButton 按钮控件,可以产生单击事件...

御承扬的博客 2576

osgPython

osgPython是一组 Python 模块,为 OpenSceneGraph 的 C++ 库提供了完整的 Python 接口。这意味着你可以在 Python 中调用几乎所有的 OSG 功能,从创建简单的场景到复杂的渲染效果。核心优势开发速度快:Python 语法简洁,无需编译,快速迭代易于学习:比 C++ 更易上手,适合原型开发和教学生态丰富:可以结合 NumPy、Matplotlib 等科学计算库跨平台:与 OSG 一样支持 Windows、Linux、macOS性能考虑。

深之JohnChen的专栏 453

MFC滑动动条控件Slider的用法

在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下: 主要要方法有: 1、设置、取得滑动范围: void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); void GetRange( int& nMin, int& nMax ) const;2、设置、取得按下左右箭头滑动间隔: int SetLineSize

llmmssing的博客 6287

YOLOv11魔改高效涨点 | 注意力篇 | SimAM注意力:基于神经科学的 3D 注意力机制,三维权重的暴力美学,无参数也能暴力涨点?代码极简,彻底疯狂!!!

在本文中,我们为卷积神经网络(ConvNets)提出了一个概念简单但非常有效的注意力模块。与现有的通道注意力(Channel-wise)和空间注意力(Spatial-wise)模块不同,我们的模块在不向原始网络添加参数的情况下,推断出层中特征图的 3D 注意力权重。具体来说,我们基于一些知名的神经科学理论,提出优化一个能量函数来寻找每个神经元的重要性。我们进一步推导出了该能量函数的快速闭式解,并表明该解可以用不到十行代码实现。

猫天意的博客 248

Python爬虫实战:利用Selenium与反反爬技术高效爬取企查查工商信息

本文将详细介绍如何使用Python最新爬虫技术(包括Selenium、Playwright、智能代理池等)爬取企查查工商信息数据。文章包含完整的代码实现、反反爬策略、数据解析与存储方案,以及法律合规性讨论,共计约8000字。企查查作为国内领先的企业信息查询平台,收录了超过2亿家企业的工商信息、司法信息、知识产权等数据。这些数据对于市场分析、商业决策等具有重要价值。法律边界提示禁止大规模爬取导致服务器过载不得绕过付费接口获取数据数据使用需遵守《个人信息保护法》商业用途需获得授权。

2201_76125261的博客 2236

MFC动态调整对话框控件位置和大小

EasySize - Dialog resizing inno time! http://www.codeproject.com/KB/dialog/easysize.aspx AutoSizeDlg - an autoresizingclass for ATL/WTL http://www.codeproject.com/KB/wtl/AutoSizeDlg.aspx 对easysize的一些介...

爱她就要努力 2124

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

[MFC] CWnd类总结

一、MFC 类别阶层架构 二、CWnd类 CWnd是MFC的一个窗口类,这个类里几乎封装了所有关于窗口操作的API函数。 在Windows系统里,一个窗口的属性分两个地方存放:一部分放在“窗口类”里头,如上所述的在注册窗口时指定;另一部分放在Windows Object本身,如:窗口的尺寸,窗口的位置(X,Y轴),窗口的Z轴顺序,窗口的状态(ACTIVE,MINIMIZED,MAXM...

Loewen丶的小窝 9267

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MFC知识点和常用类控件的使用

一:消息 1.什么是消息? 消息是驱动windows系统运行的基础。从计算机的角度来看,消息就是一个整数。 (1)一个无符号整数,是消息值; (2)消息附带的WPARAM和LPARAM类型的参数; (3)其实我们一般所说的消息是狭义上的消息值,也就是一个无符号整数,经常被定义为宏。 2.消息映射机制: MFC使用消息映射机制来处理消息,在程序框架中的表现就是,在程序中有一个消息与消息处理函数组成的消息映射,每条消息都有与之相对应的消息处理函数。当窗口接收到消息时,会到消息映射表中查找该消息对应的消息处

不算太晚 811

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[VC/MFC]滑动动条控件Slider的用法

 在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:主要要方法有:1、设置、取得滑动范围: void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); void GetRange( int& nMin, int& nMax ) const;2、设置、取得按下左右箭头滑动间隔: int SetLine

黑色星辰 3232

MFC中SliderCtrl控件的使用

在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下: 主要要方法有: 1、设置、取得滑动范围:  void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );  void GetRange( int& nMin, int& nMax ) const;   2、设置、取得按下左右箭头滑动间隔:

ghevinn欢迎您光临 3204

c#向MFC窗体发送消息

c#向MFC窗体发送消息,C#中调用Win32中的API,

cc_fys的博客 1158

关于MessageBox消息框弹出时会将主窗体隐藏问题的解决方法

1,若是直接在主窗体中使用MessageBox.Show()方法,第一个参数用this就行。 2,若是不在主窗体中使用,则需要将主窗体做为参数传过去 2.1 可以在构造函数中传递 Main frm ; public OtherForm(Main main) {frm = main } // Main 为主窗体名称 2.2 通过循环找到主...

qq_40197926的博客 1706

MFC 定时触发器实现循环给指定线程进行发送消息

//头文件 #include "StdAfx.h" #include "ATPC.h" #include "TWinApp.h" #include "MainWindow.h" #include "TWndAttrs.h" #include "TWinThread.h" //窗体拖动的宏的定义 #define SC_DRAGMOVE (0xf012) CMainWindow::CMainWindo

skdkjxy的专栏 1947

MFC自定义消息的实现方法----(线程向主对话框发送消息)

在MFC中,我们一边在使用多线程时,经常会遇到在需要调用到新建的控件,此时建议不要在新建的线程中直接调用主对话框的控件,我们可以通过自定义消息,在新建线程中发送并触发主线程进行相关的界面控件操作。 以Dialog对话框程序为例,添加自定义消息的操作方法可以如下所示: 1. 在头文件stdafx.h中添加一个自定义消息宏: #define WM_USER_MSG_HDL (WM_USE...

xzq413520903的博客 1587

Customize your own MFC message

消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以下步骤:Doc/View Application:  第一步:定义消息。  推荐用户

wangxipu的专栏 1022
上一篇: 10 Tips to improve your Software Architecture Design
下一篇: TCHAR,WCHAR,LPSTR,LPWSTR,LPCSTR的区别
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值