解决Edit扩展类显示图片初始化时,图片处于全选状态

本文详细介绍了在使用扩展类处理对话框初始化时,如何避免插入图片后控件自动被选中的问题,并提供了解决代码。包括了通过设置对话框控件焦点来解决焦点锁定问题的技巧。

怎么在编辑框Edit control中,随心所欲的插入图片呢?

我使用了一个它的扩展类,下载地址:http://download.csdn.net/detail/leighton_52/6216413

但是,出现了一个问题,就是在我的对话框初始化的时候,插入到该控件中的图片,总是处于被选中状态,很是难看。


相关代码,如下:

BOOL CTQquestionShowDlg::OnInitDialog()
{
CResizableDialog::OnInitDialog();

// TODO:  Add extra initialization here

if (m_hbmp != NULL)
{
m_RichEditQues.InsertBitmap(m_hbmp);
}
   
      return TRUE;  // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

在解决问题的过程中,我发现,如果我不删除对话框自带的OK,Cancel按钮,对话框初始化时,焦点自动在OK按钮上,就不会出现上面的情况,难道是

在删除按钮后,焦点自动的锁定在了Edit控件上?

我通过捕捉焦点if(::GetFocus() == m_RichEditQues.m_hwnd),发现事实并不是我想的那样,焦点并没有锁定在此控件上,那为什么呢?

到问题解决,我都不明白原理是什么,不过问题终归解决了,下面是解决代码

BOOL CTQquestionShowDlg::OnInitDialog()
{
CResizableDialog::OnInitDialog();

// TODO:  Add extra initialization here

if (m_hbmp != NULL)
{
m_RichEditQues.InsertBitmap(m_hbmp);
}
   
GetDlgItem(IDC_RICHEDIT_QUES)->SetFocus();

return FALSE;           //我添加了这两行语句,至于为什么,呵呵,我也不太清楚,希望有人能解答

//return TRUE;  // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值