MFC 在线程中改变控件

在线程中改变控件,最好的方式是给窗体发送消息。这里所涉及到用户自定义消息的机制 。如何自定义消息,具体细节请查看相关书籍或者google。

下面实现一个在线程中改变窗体中 静态文本框内容的功能。

代码为证:

// TestOpencv2Dlg.h : 头文件
#define WM_EDITINFO WM_USER+100  //用户自定义消息
afx_msg LRESULT InfoChange(WPARAM wParam,LPARAM lParam); //声明消息相应函数


// TestOpencv2Dlg.cpp : 实现文件

BEGIN_MESSAGE_MAP(CTestOpencv2Dlg, CDialogEx)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, &CTestOpencv2Dlg::OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON2, &CTestOpencv2Dlg::OnBnClickedButton2)
	ON_STN_CLICKED(IDC_PIC1, &CTestOpencv2Dlg::OnStnClickedPic1)
	ON_BN_CLICKED(IDC_BUTTON3, &CTestOpencv2Dlg::OnBnClickedButton3)
	ON_BN_CLICKED(IDC_BUTTON4, &CTestOpencv2Dlg::OnBnClickedButton4)
	ON_COMMAND(ID_32771, &CTestOpencv2Dlg::On32771)
	ON_BN_CLICKED(IDCANCEL, &CTestOpencv2Dlg::OnBnClickedCancel)
	ON_COMMAND(ID_32772, &CTestOpencv2Dlg::On32772)
	ON_MESSAGE(WM_EDITINFO,InfoChange)   //消息映射
END_MESSAGE_MAP()

 

 //线程主函数
  UINT CTestOpencv2Dlg::ThreadMain(LPVOID pParam)
{
	CString   strPara   =   _T("wohao");    //要传递的字符串
	::SendMessageA(::AfxGetMainWnd()->m_hWnd,WM_EDITINFO,0,(LPARAM)(LPCTSTR)strPara);  //发送消息函数,其中传递一个字符串参数
}


//消息响应函数,实现改变窗口中静态文本框的功能

LRESULT CTestOpencv2Dlg::InfoChange(WPARAM wParam,LPARAM lParam)
{
	CString temStr= (LPCTSTR)lParam;    
	this->SetDlgItemTextA(IDC_STATIC,temStr);
	return true;

}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值