CTabCtrl本次用途:CTabCtrl用来实现同一个DLG加载多个DLG功能,即在A对话框中可以通过标签将BCDE。。。对话框嵌入进来。
问题1:原对话框有底色,如何使得整个对话框颜色统一?
解决办法,继承CTabCtrl,重载OnEraseBkgnd函数。当然VC6通过ctrl+W加入。内容如下:
CBrush br(RGB(245,255,255));
CRect rc;
GetClientRect(rc);
pDC->FillRect(rc, &br);
return true;
在主对话框中使用继承的类来进行对象实例化。Then.Perfect!
问题2:Tab标签丑陋,希望加入自己绘制的按钮?
解决办法:在对话框中加入tabCtrl,实例化对象,改为上面描述的类。在OnInitDialog方法内。需要几个标签创建几个按钮,下面代码为m_BTN1-4,内嵌对话框,首先将style改为child,然后下文中m_tab_1-3为3个不同对话框在该类中的成员变量。最后将按钮移入该放入的位置.
CRect rs;
m_tab.GetClientRect(&rs);
rs.top+=32;
rs.bottom-=0;
rs.left+=0;
rs.right-=0;
m_tab.InsertItem(0,"");
m_tab.InsertItem(1,"");
m_tab.InsertItem(2,"");
m_tab.InsertItem(3,"");