tongxiaomo 2014-12-11 06:59 采纳率: 0%
浏览 1438

使用CRichEditCtrl实现动态调整编辑框大小时在末尾输入空格无法正确计算大小

继承CRichEditCtrl类得到CAutoReSizeEdit类;
该类中
主要添加如下:
void CAutoReSizeEdit::OnEnRequestresize(NMHDR *pNMHDR, LRESULT *pResult)//重写的EN_REQUESTRESIZE消息
{
REQRESIZE *pReqResize = reinterpret_cast(pNMHDR);

//添加
MoveWindow(&pReqResize->rc);
//添加结束

*pResult = 0;

}

在Dlg的.h头文件中声明如下:
CAutoReSizeEdit m_ctrledit;

在Dlg的cpp文件的OnInitDialog中创建并设置如下:
m_ctrledit.Create(WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL|ES_AUTOHSCROLL,rect,this,1003);
m_ctrledit.SetEventMask(ENM_REQUESTRESIZE);

遇到如下问题:
当我在编辑框中输入的时候:
1、直接输入空格;
2、在末尾输入空格;
OnEnRequestresize方法都没有响应,但输入其他字符或在前面和中间输入空格的时候却能正常计算出大小并调整大小!!!

另外有测试创建m_ctrledit的时候不要ES_MULTILINE属性,则没有上述问题,但这时候却无法实现多行输入!!!

请问哪位大神指导如何既不出现上述的问题,又能多行显示吗???
小弟在此现行谢过啦!!!!!!

  • 写回答

1条回答 默认 最新

  • 91program 博客专家认证 2014-12-11 07:16
    关注

    CRichEditCtrl 应该也有同样的问题吧,是不是?

    如果是这样,只能说 CRichEditCtrl 在多行的实现时,在计算长度时使用了截取头尾空格的功能。
    如果在空格后再输入一个字符呢,是否能得到正确的结果? 看看能不能重载长度计算的功能吧。

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面