MFC开发之静态文本框实现编辑框滚动显示文字效果

效果:

1、通过滚轮拖动进行滚动显示

2、通过鼠标滚轮显示

3、保证滚动每行和字实际高度一致

4、滚轮行数和需要滚动的字行数一致

正文:需要自绘静态文本框

一、使用滚轮和滚动条

在PreTranslateMessage函数中判断滚轮消息

UINT btnID;

//由窗口句柄获得控件ID号,GetWindowLong为获得窗口的ID号。 
btnID = GetWindowLong(pMsg->hwnd, GWL_ID);

int zDelta = (short)HIWORD(pMsg->wParam);

switch (pMsg->message)
{
	case WM_MOUSEWHEEL:
	{
		if (btnID == 静态文本框ID)
		{

通过判断zDelta为-120还是120来累加或者累减滚动行数这个变量就可以了

同样使用滚动条也是一样

 

二、实现滚动行效果

在DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)中添加代码

lpDrawItemStruct->CtlID:判断当前静态文本框ID

//显示,str为静态文本框显示字

CDC dc;
dc.Attach(lpDrawItemStruct->hDC); //获取控件DC
dc.SetBkMode(TRANSPARENT);  //设置背景色透明
CString   str;
GetWindowText(str);
dc.SetTextColor(RGB(255, 255, 255));
dc.DrawText(str, rect, DT_EDITCONTROL | DT_WORDBREAK);//str为显示数据

//获取静态

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

大树学长

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值