Duilb QQ桌面上Edit的使用

QQ上的Edit效果如图所示:
显示效果:
获取焦点后的效果:
单击后的效果:
Edit失去焦点后的效果:


通过分析XML文件发现,该效果是由一个Button和Edit两个空间组合形成的,其中两个空间的大小相等。原理:通过单击按钮,将按钮SetVisible(false),通过将EditSetVisible(ture),同时获取按钮中的内容,赋值给Edit,当Edit失去焦点后,将Edit进行SetVisible(false),按钮将SetVisible(ture),同时按钮获取到Edit中的内容。


源码(控件都是在Notify函数中实现):
单击Button时所运行的源码:
else if (_tcsicmp(msg.pSender->GetName(), “button控件的名称”) == 0)
{
      msg.pSender->SetVisible(false);
     CRichEditUI* signature = static_cast<CRichEditUI*>(m_PaintManager.FindControl(“Edit控件的名称”));
    if (signature != NULL)
    {
         signature->SetText(msg.pSender->GetText());
         signature->SetVisible(true);
    }
}
Edit失去焦点后的源码:
else if (_tcsicmp(msg.sType, _T("killfocus")) == 0)
{
if (_tcsicmp(msg.pSender->GetName(), “Edit控件的名称”) == 0)
{
     msg.pSender->SetVisible(false);
    CControlUI* signature_tip = m_PaintManager.FindControl(“Button控件的名称”);
    if (signature_tip != NULL)
   {
        CRichEditUI* signature = static_cast<CRichEditUI*>(msg.pSender);
        if (signature != NULL)
       signature_tip->SetText(signature->GetText());
       signature_tip->SetVisible(true);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值