ComboBox子类化问题

cdpc0202 cdpc0202 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

HBRUSH CMyCombobox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: 在此更改 DC 的任何属性

// TODO: 如果默认的不是所需画笔,则返回另一个画笔
if(nCtlColor == CTLCOLOR_STATIC && m_static.GetSafeHwnd() == NULL)
{
m_static.SubclassWindow(pWnd->GetSafeHwnd());
}
if(nCtlColor == CTLCOLOR_BTN)
{
int a = 5;
}
if(nCtlColor == CTLCOLOR_LISTBOX && m_list.GetSafeHwnd() == NULL)
{
m_list.SubclassWindow(pWnd->GetSafeHwnd());
m_list.SendMessage(WM_NCPAINT,0,0);
}
return hbr;
}


问题1:
MSDN描述A combo box consists of a list box combined with either a static control or edit control
DropList风格时 为什么
if(nCtlColor == CTLCOLOR_STATIC && m_static.GetSafeHwnd() == NULL)
{
m_static.SubclassWindow(pWnd->GetSafeHwnd());//调用不到?
}

combobox的drop-down arrow 是个按钮吗?可以子类化这个按钮吗?(CTLCOLOR_BTN 同样调用不到)

问题2:
子类化listbox后 static control or edit control不能显示当前选择的Item的文本。
这些问题如何解决?

...全文
评论 7
收藏 已收藏
分享
返回顶部
cdpc0202
界面 15,976 成员 115,866 内容