level 3
CSize msize;
SetItemSize(msize);
2011年09月25日 13点09分
5
level 3
CSize msize;
myTab.SetItemSize(msize);
2011年09月25日 13点09分
6
level 14
应该没问题
m_Tab.InsertItem(0,_T("标签1"));
m_Tab.InsertItem(1,_T("标签2"));
m_Tab.SetItemSize(CSize(30,50));
2011年09月25日 13点09分
7
level 3
还是那样,我的tab页是child对话框,是不是对话框的属性设置不对啊
2011年09月25日 13点09分
8
level 3
MFC太诡异了,你会写report list控件重绘Icon函数补
2011年09月25日 13点09分
10
level 14
新建个对话框类加个tabctrl 再加上上面那段代码domodal看看
2011年09月25日 13点09分
11
level 14
listctrl自绘
处理 NM_CUSTOMDRAW消息
void CMyDlg::OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
elseif ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
{
//在这里添加自绘代码
*pResult = CDRF_DODEFAULT;
}
}
2011年09月25日 13点09分
12
level 14
就是通过GetItemRect()获取item区域
然后GDI贴图就行
2011年09月25日 14点09分
14
level 3
不懂啊,第一次用MFC,你能不能给我写个,重绘icon
2011年09月25日 14点09分
16
level 14
void CMyList::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMLVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
if (pNMCD->nmcd.dwDrawStage == CDDS_PREPAINT)
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if (pNMCD->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if (pNMCD->nmcd.dwDrawStage == (CDDS_SUBITEM|CDDS_ITEMPREPAINT) )
{
CRect rc_sub_item;int iItem = (int)pNMCD->nmcd.dwItemSpec;
if (pNMCD->iSubItem == 0)
{
CRect rc_sub_item_bound;
GetSubItemRect((int)pNMCD->nmcd.dwItemSpec,pNMCD->iSubItem,LVIR_BOUNDS ,rc_sub_item_bound);
GetSubItemRect((int)pNMCD->nmcd.dwItemSpec,pNMCD->iSubItem,LVIR_LABEL ,rc_sub_item);
rc_sub_item.left = rc_sub_item_bound.left;
}
else
{
GetSubItemRect((int)pNMCD->nmcd.dwItemSpec,pNMCD->iSubItem,LVIR_LABEL ,rc_sub_item);
}
CBitmap temp;
temp.LoadBitmap(IDR_MAINFRAME);
HDC hDC;HBITMAP hBmp;
CClientDC dc(this);
hDC=CreateCompatibleDC(dc.GetSafeHdc());
hBmp=CreateCompatibleBitmap(dc.GetSafeHdc(),rc_sub_item.Width(),rc_sub_item.Height());(HBITMAP)SelectObject(hDC,hBmp);
CImage img;
img.Load(L"C:\\Documents and Settings\\Administrator\\桌面\\桌面图片\\111.jpg");
img.BitBlt(hDC,0,0,SRCCOPY);
BitBlt(pNMCD->nmcd.hdc,rc_sub_item.left,rc_sub_item.top,rc_sub_item.Width(),rc_sub_item.Height(),hDC,0,0,SRCCOPY);*pResult = CDRF_SKIPDEFAULT;}
else
{
*pResult = CDRF_DODEFAULT;
}
}
2011年09月26日 03点09分
19