MFC tab控件的标签怎么弄高点
mfc吧
全部回复
仅看楼主
level 3
RT,整个界面比较大,但是标签太细了,怎么弄高点
2011年09月24日 10点09分 1
level 14
SetItemSize
2011年09月24日 17点09分 2
level 3
显示有问题啊
2011年09月25日 08点09分 3
调整子对话框位置 往下一点
2014年09月15日 17点09分
CRect PagePos; m_tab.GetClientRect(&PagePos); PagePos.top+=23; PagePos.left-=3; PagePos.right-=2; PagePos.bottom-=3; m_page1.MoveWindow(&PagePos); m_page2.MoveWindow(&PagePos); 貌似这样刚刚好
2014年09月15日 17点09分
level 14
不会的啊 代码怎么写的
2011年09月25日 10点09分 4
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
bingo
2014年09月15日 17点09分
level 3
还是那样,我的tab页是child对话框,是不是对话框的属性设置不对啊
2011年09月25日 13点09分 8
level 14
没有关系的额
2011年09月25日 13点09分 9
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 3
我不会写重绘函数啊,
2011年09月25日 13点09分 13
level 14
就是通过GetItemRect()获取item区域
然后GDI贴图就行
2011年09月25日 14点09分 14
level 3
标签的那个搞懂了,是子对话框盖住了
2011年09月25日 14点09分 15
level 3
不懂啊,第一次用MFC,你能不能给我写个,重绘icon
2011年09月25日 14点09分 16
level 14
明天给你吧 公司电脑里有
2011年09月25日 14点09分 17
level 3
好,3Q
2011年09月25日 14点09分 18
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
level 14
这只是个贴图的例子 自绘后贴图写文字都要自己做
2011年09月26日 03点09分 20
1 2 尾页