MFC中鼠标响应textOut()输出文本

本文介绍了在MFC中处理鼠标响应并在页面上使用textOut()输出文本的技巧。通过继承CView类,实现输出信息方法,设置鼠标响应并确保在onDraw()中调用绘制操作,解决了因直接在鼠标事件中调用textOut()导致无法正常显示字符的问题。强调了MFC的GDI绘图操作必须在onDraw()中进行以避免界面刷新冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在工作中有个关于MFC的需求:点击Table中的粗略信息,在页面中显示对应的历史详细信息。本身不是很难,但是其中因为忽视了一个小问题耽误了很多时间。由于涉及公司内部代码,只贴出部分并修改供理解思想。

1.继承CView类

2.实现输出信息的方法

void 类名::DrawStkInfo_AllHisInfo(POINT ptLeftTop,POINT ptRightDown,CDC *pDC)
{
        int nRow = 1;
        CRect m_rectCurrLocName[5]
        //设置响应范围
        list<mstruct *>::iterator iter = m_listInfo.begin();
        while(iter != m_listInfo.end())
	{
		if(nRow < 5)
		{
			m_rectCurrLocName[nRow-1].left = m_dArrayDrawTextStatrX_T2[0]+1;
			m_rectCurrLocName[nRow-1].right = m_dArrayDrawTextStatrX_T2[1]-1;
			m_rectCurrLocName[nRow-1].top = m_dArrayDrawTextStatrY_T2[nRow]+1;
			m_rectCurrLocName[nRow-1].bottom = m_dArrayDrawTextStatrY_T2[nRow+1]-1;
			cDisable.CreateSolidBrush(RGB(108, 131, 139));
			pDC->FillRect(m_rectCurrLocName[nRow-1],&cDisable);
			cDisable.DeleteObject();
		}
        }

	CString strHistory = "";
	list<mstruct *>::iterator iter = m_listInfo.begin();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值