Thursday, December 18, 2008

Removing the Button of a CComboBox

int CMyComboBox::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

int nRet = rtn = CComboBox::OnCreate(lpCreateStruct);

COMBOBOXINFO pcb;

pcb.cbSize = sizeof(COMBOBOXINFO);

if(GetComboBoxInfo(&pcb))

{

CEdit* pEdit = (CEdit*)FromHandle(pcb.hwndItem);

if(pEdit != NULL)

{

m_rcComboEdit = pcb.rcItem;

m_rcComboEditUnionBtn.UnionRect(ceRect,&pcb.rcButton);

}

}

return nRet;

}

void CMyComboBox::HideButton(BOOL bHide)

{

COMBOBOXINFO pcb;

pcb.cbSize = sizeof(COMBOBOXINFO);

if(GetComboBoxInfo(&pcb))

{

CEdit* pEdit = (CEdit*)FromHandle(pcb.hwndItem);

if(pEdit != NULL)

{

if(bHide)

{

pEdit->MoveWindow(m_rcComboEdit.left,

m_rcComboEdit.top,

m_rcComboEditUnionBtn.Width(),

m_rcComboEdit.Height());

}

else

{

pEdit->MoveWindow(m_rcComboEdit.left,

m_rcComboEdit.top,

m_rcComboEdit.Width(),

m_rcComboEdit.Height());

}

}

}

RedrawWindow();

}

No comments: