CTabCtrl标题栏颜色改变以及tab换成自己按钮及内嵌对话框用法

本文介绍了如何使用CTabCtrl在对话框中实现内嵌多个子对话框的功能。首先,通过继承CTabCtrl并重写OnEraseBkgnd函数统一对话框背景色。接着,将CTabCtrl的标签替换为自定义按钮,通过LoadBitmaps加载不同状态的位图,并在OnSelchangeTab1事件中根据选中项显示相应的内嵌对话框。
摘要由CSDN通过智能技术生成

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,"");   
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值