ComboBox经过子类化后,输入不再在ComboBox表现出来?

逸萌 2009-02-12 05:13:47
//ComboBox style:Drop-Down,可在Edit中输入,可是经过以下子类化后输入在ComboBox中没有响应,如何让ComboBox还有显示?
HBRUSH CComboBoxML::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_EDIT)
{
//Edit control
#if 1
if (m_edit.GetSafeHwnd() == NULL)
m_edit.SubclassWindow(pWnd->GetSafeHwnd());
#endif
}

HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

// TODO: Return a different brush if the default is not desired
return hbr;
}

void CComboBoxML::OnDestroy()
{
if (m_edit.GetSafeHwnd() != NULL)
m_edit.UnsubclassWindow();
CComboBox::OnDestroy();

// TODO: Add your message handler code here
}
...全文
101 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛 魔 王 2011-12-29
  • 打赏
  • 举报
回复
怎么解决的?
逸萌 2009-02-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cnzdgs 的回复:]
8楼帮你解决了问题?
[/Quote]
没有,自己解决,8楼让我知道代码没有问题
也谢谢你
cnzdgs 2009-02-13
  • 打赏
  • 举报
回复
8楼帮你解决了问题?
逸萌 2009-02-13
  • 打赏
  • 举报
回复
m_CComboBox.m_edit.MoveWindow设置了无效的Rect
Red_Goal 2009-02-13
  • 打赏
  • 举报
回复
按照楼主:在VC6 VS2005 VS2008测试都没有问题,
肯定是其它原因?
仔细查看代码
hpc2007 2009-02-12
  • 打赏
  • 举报
回复
每个窗口类都有自己的默认的窗口过程DefWindowProc,COMBOBOX的DefWindowProc和CEdit的DefWindowProc明显是不同的。你把CEdit的处理机制安在COMBOBOX上面,结果肯定是不可预料的。子类化应该是用从CComboBox派生的类来,而不是用CEdit
hpc2007 2009-02-12
  • 打赏
  • 举报
回复
没人窗口类都有自己的默认的窗口过程DefWindowProc,COMBOBOX的DefWindowProc和CEdit的DefWindowProc明显是不同的。你把CEdit的处理机制安在COMBOBOX上面,结果肯定是不可预料的。子类化应该是用从CComboBox派生的类来,而不是用CEdit
cnzdgs 2009-02-12
  • 打赏
  • 举报
回复
m_edit是什么类型?
逸萌 2009-02-12
  • 打赏
  • 举报
回复
目的是处理Msg,但我现在还是缺省的都不行
cnzdgs 2009-02-12
  • 打赏
  • 举报
回复
那你子类化的目的是什么?
逸萌 2009-02-12
  • 打赏
  • 举报
回复
edit类还没映射Msg
cnzdgs 2009-02-12
  • 打赏
  • 举报
回复
要看m_edit对应的类是怎么处理的。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧