void CTest::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
if(nIDCtl==IDC_BUTTON1)
{
CDC dc;
RECT rect;
dc.Attach(lpDrawItemStruct ->hDC);
rect = lpDrawItemStruct->rcItem;
UINT state=lpDrawItemStruct->itemState;
if((state & ODS_SELECTED))
{
dc.DrawEdge(&rect,EDGE_SUNKEN,BF_RECT);
}
else
{
dc.DrawEdge(&rect,EDGE_RAISED,BF_RECT);
} TCHAR buffer[MAX_PATH];
ZeroMemory(buffer,MAX_PATH );
::GetWindowText(lpDrawItemStruct->hwndItem,buffer,MAX_PATH);
rect.bottom=rect.bottom+20;
dc.DrawText(buffer,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
dc.Detach();
}
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
我这里只把文字显示在下半部分;
关于上半部分的图片,我不知道如何加载,请大家帮忙,谢谢!!
{
// TODO: Add your message handler code here and/or call default
if(nIDCtl==IDC_BUTTON1)
{
CDC dc;
RECT rect;
dc.Attach(lpDrawItemStruct ->hDC);
rect = lpDrawItemStruct->rcItem;
UINT state=lpDrawItemStruct->itemState;
if((state & ODS_SELECTED))
{
dc.DrawEdge(&rect,EDGE_SUNKEN,BF_RECT);
}
else
{
dc.DrawEdge(&rect,EDGE_RAISED,BF_RECT);
} TCHAR buffer[MAX_PATH];
ZeroMemory(buffer,MAX_PATH );
::GetWindowText(lpDrawItemStruct->hwndItem,buffer,MAX_PATH);
rect.bottom=rect.bottom+20;
dc.DrawText(buffer,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
dc.Detach();
}
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
我这里只把文字显示在下半部分;
关于上半部分的图片,我不知道如何加载,请大家帮忙,谢谢!!
绘制图片:
直接用CImage好了
已经封装好了
当然
你也可以看一下源码看人家是怎么做到的
http://blog.csdn.net/wangyao1052/article/details/8147128