c++ mfc发送消息

1  添加下面的定义

HCURSOR m_hCursor;
	RECT m_rtCtrl;
	BOOL m_bCapturing;
	HWND m_hwndDest;

2 OnInitialDialog()增加下面代码

m_hCursor = LoadCursor(NULL,IDC_SIZEALL);
	GetDlgItem(IDC_CAP)->GetWindowRect(&m_rtCtrl);

3 添加下面的消息处理,事件处理

void CDemoDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	if(point.x >= m_rtCtrl.left && point.x <= m_rtCtrl.right
		|| point.y >= m_rtCtrl.top && point.y <= m_rtCtrl.bottom)
	{
		m_bCapturing = TRUE;
		SetCapture();
		SetCursor(m_hCursor);
	}

	CDialogEx::OnLButtonDown(nFlags, point);
}


void CDemoDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	if(m_bCapturing)
	{
		ReleaseCapture();
		m_bCapturing = FALSE;
		POINT pt = point;
		ClientToScreen(&pt);
		m_hwndDest = ::WindowFromPoint(pt);
		TCHAR szBuf[MAX_PATH] = {0};
		_stprintf(szBuf,_T("0x%.8X"),m_hwndDest);
		SetDlgItemText(IDC_EDT_HWND, szBuf);
		GetClassName(m_hwndDest,szBuf,MAX_PATH);
		SetDlgItemText(IDC_EDT_CLASS,szBuf);
		::SendMessage(m_hwndDest,WM_GETTEXT, MAX_PATH,(LPARAM)szBuf);
		SetDlgItemText(IDC_EDT_TEXT,szBuf);
	}
	CDialogEx::OnLButtonUp(nFlags, point);
}


void CDemoDlg::OnBnClickedBtnSettext()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str;
	GetDlgItemText(IDC_EDT_TEXT,str);
	::SendMessage(m_hwndDest,WM_SETTEXT,0,(LPARAM)(LPCTSTR)str);
}


void CDemoDlg::OnBnClickedBtnClose()
{
	// TODO: 在此添加控件通知处理程序代码
	::SendMessage(m_hwndDest,WM_CLOSE,0,0);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值