首先给大家介绍一个csdn博客关于ComboBox的组成和如何绘制的介绍。
http://blog.csdn.net/fengbangyue/article/details/5222124
我要绘制的是drop list模式的ComboBox。
直接上代码:
//下拉列表框
class ComboBox : public CWindowImpl<ComboBox,CComboBox>,public COwnerDraw<ComboBox>
{
public:
BEGIN_MSG_MAP(ComboBox)
MSG_WM_ERASEBKGND(OnEraseBkgnd)
MSG_WM_PAINT(OnPaint)
CHAIN_MSG_MAP_ALT(COwnerDraw<ComboBox>,1)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
BOOL OnEraseBkgnd(CDCHandle dc)
{
return TRUE;
}
void OnPaint(CDCHandle) //绘制那个按钮
{
CPaintDC dc(m_hWnd);
CRect rc;
GetClientRect(&rc);
HBRUSH hBrush = CreateSolidBrush(RGB(200,200,250));
dc.FillRect(&rc,hBrush);
TCHAR str[255];
GetWindowTextW(str,255);
if(CString(str).IsEmpty() == FALSE)
{
CFont font;
font.CreatePointFont(110,L"华文行楷");
dc.Se