在CTabCtrl上动态创建CListCtrl控件

1 m_List.Create(WS_OVERLAPPED|WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_AUTOARRANGE|LVS_SHOWSELALWAYS|LVS_EDITLABELS ,rect,&m_tabListTable,1234);

2 m_List.ModifyStyle(0,WS_EX_CLIENTEDGE,SWP_DRAWFRAME);

最后的Id只要不跟resource.h里的重复,随便填一个。

效果:

在CTabCtrl上动态创建CListCtrl控件

=============================================================

补充:

当在XP+VC6下写的程序放到Win7上运行时,可能会出现不愉快的视觉效果,我手工用画图(专注画图好多年,简单方便又快捷)标注了下,为了突出我使用了蓝色:

图中蓝色部分可能会显示为当前系统的设定值(我瞎猜的不要当真),这需要我们手工的改写tab控件的背景色。

要做的就是继承CTabCtrl来实现自己的类,例如CTabCtrlWLS,然后实现对WM_ERASEBKGND的响应。

 1 BOOL CTabCtrlWLS::OnEraseBkgnd(CDC* pDC) 

 2 {

 3     // TODO: Add your message handler code here and/or call default

 4     

 5     RECT stRect;

 6     GetClientRect(&stRect);

 7      

 8     //创建画刷,外部。

 9     //CBrush   oBrush;

10     //oBrush.CreateSolidBrush(RGB(236,233,216));

11     

12     //填充控件背景

13     pDC-> FillRect(&stRect,&oBrushBKGND);

14     

15     //return CTabCtrl::OnEraseBkgnd(pDC);

16     return true;

17 }

 

你可能感兴趣的:(list)