写了一个文本框,就是上面那个好看点的那个。
然后写了一个自己的组合框,在onctlcolor中子类化组合框的文本框部分。
代码如下:
HBRUSH CMyComb::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if (nCtlColor==CTLCOLOR_EDIT)
{
if (m_MyEdit.GetSafeHwnd()==NULL)
{
m_MyEdit.SubclassWindow(pWnd->m_hWnd);
MessageBox(_T("已经被子类化"));
}
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
F5,运行后弹出"已经被子类化",说明程序是运行到m_MyEdit.SubclassWindow(pWnd->m_hWnd)这行的,但为什么界面没有变化,具体看上图