MFC完全自绘Tab控件,支持图片背景

VC之美化界面 白乔原创:VC之美化界面篇转载地址:http://www.vcer.net/showTip.jsp?tipid=10465954826431. 美化界面之开题篇相信使用过《金山毒霸》、《瑞星杀毒》软件的读者应该还记得它们的精美界面:   图1 瑞星杀毒软件的精美界面程序的功能如何如何强大是一回事,它的用户界面则是另一回事。千万不要忽视程序的用户界面,因为它是给用户最初最直接的印象,丑陋的界面、不友 阅读详情

1.建立CWnd的派生类CNewTab:

CArray<CImage*,CImage*>m_arrImg; //保存Tab控件每一项的背景图片
CArray<UINT,UINT>m_arrDlgID; //保存没一项对应的对话框ID
CArray<int,int>m_arrType; //保存对话框类型
CWnd * m_pParentWnd; //父窗口指针
CRect m_showRect;//子项显示区域
int m_nSel;//当前选择的项
int sumWidth;//tab控件标题的总宽度
int sumHeight;//tab控件标题的总高度
CDialogEx * m_pDlg; //tab控件当前显示的对话框
CPoint m_ptStart;//tab控件的启示点
int m_nType;//指定tab控件的类型:横排显示(1)或者竖排显示(0)


void Init(CPoint pt,CWnd *pParentWnd,UINT nID,int nType);//初始化tab控件,给定其实位置,父窗口指针,控件类型
void setShowArea(CRect rc);//设置tab控件每个子窗口的显示区域
void addMember(CString strPic,UINT wndID,int nType/*,CDialogEx dlg*/);//增加项

void OnDraw(CDC *pDC);
void showSelected();

MFC控件全解析:从标准控件到高级应用与实战技巧 在Windows桌面开发领域,GUI编程是构建用户界面的核心。其底层原理基于消息循环、窗口句柄和资源管理机制,这些概念构成了现代UI框架的基础。理解控件的创建、消息映射与数据交换机制,对于开发稳定高效的桌面应用具有重要技术价值,尤其在维护遗留系统、工业软件等场景中至关重要。本文聚焦MFC控件体系,涵盖标准控件如CButton、CEdit,以及高级公共控件如CListCtrl、CTreeCtrl的使用,并深入探讨了子类化、多线程安全等实战技巧,帮助开发者应对实际开发中的常见问题与性能挑战。 阅读详情

相关推荐

MFC控件开发实战:从基础原理到高级应用与避坑指南

Windows GUI编程是桌面应用开发的基础,其核心在于理解消息循环与控件机制。MFC(Microsoft Foundation Classes)作为经典的C++框架,通过封装Win32 API,提供了面向对象的控件编程模型,如CButton、CEdit、CListCtrl等,实现了高效的原生界面开发。其技术价值在于直接基于Windows消息驱动,无需额外运行时依赖,生成的程序体积小、启动快、资源消耗低,特别适合对性能和稳定性要求严苛的场景,如工业控制、金融终端及遗留系统维护。在应用层面,掌握控件的动态创

weixin_30613727的博客 547

MyTableControl.zip_CTabCtrl背景色_MFC tab 动态_自 tab_自CWnd_自适应

MFC程序,从Cwnd派生,自CTabCtrl, 可以任意设置颜色,字体,Tab标签位置,动态切换字体,背景色,标签大小和位置,动态添加、删除Tab标签。

VC++仿金山毒霸界面开发:GDI+自控件与分层窗口实战

Windows桌面应用开发的核心在于理解其底层图形界面机制。从消息循环、窗口管理到图形设备接口(GDI/GDI+),这些基础概念构成了所有GUI框架的基石。掌握这些原理,不仅能优化应用性能,更能灵活应对定制化界面需求,其技术价值在需要极致性能与原生体验的场景中尤为突出。例如,在安全软件、工业控制或嵌入式系统中,对界面响应速度和资源占用有严格要求。通过**自控件(Owner-Draw)**和**双缓冲图**技术,开发者可以完全掌控像素级制,实现非标准窗口、动态皮肤与平滑动画。本文以仿金山毒霸界面为例,详

weixin_29168813的博客 307

MFC 全部自控件 界面

因为公司之前买的界面库不够好用 后来全部自己自了所有控件 并已全部投入使用 目前是在XImage和FreeImage库的基础上实现半透明背景换肤 也有滚动条这类用GDI制的控件 附demo和文件

MFC系列-第32天】控件技术

32.1 对话框背景设置 方法一 BOOL CClDlg::OnEraseBkgnd(CDC* pDC) { CRect rect; GetClientRect(rect); pDC->FillSolidRect(rect, RGB(200, 255, 255)); return TRUE; } 方法二:WM_CTRLCOLOR消息 按类型 按句柄 按控件ID HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UI

业精于勤,荒于嬉 511

MFC控件

一、MFC控件 要了解Windows下的图操作,实现界面的美化,就必须了解MFC封装的设备环境类 和图形对象类。 1.1 设备环境类 MFC中的CDC类封装了Windwos API中的大部分的画图函数。CDC的常用的操作函数包括: *颜色和颜色调色板函数 图属性函数 映射函数 坐标函数 *区域函数 剪切函数 线输出函数 简单图函数 椭圆和多边形函数 *位图函数...

zxf347085420的博客 2604

MFC控件

控件的自 常见的控件的方法有父窗口的OnDrawItem()函数、子控件的DrawItem()函数、子控件的CtlColor()函数、子控件的OnPaint()函数,子控件的OnNMCustomdraw()函数等。自控件的话需要控件具有Owner Draw属性,通过Create()创建控件的时候添加BS_OWNERDRAW属性,或者在资源视图中右击控件->属性->Owner Draw设为true。 1、父窗口的OnDrawItem()函数、子控件的DrawItem()函数 ...

u011109761的专栏 1439

vs2017开发ActiveX(主讲OCX)(三)、MFC ActiveX控件向导中的控件设置

文章目录前言MFC ActiveX控件向导可见时激活无窗口激活未剪辑的设备上下文无闪烁激活不活动时有鼠标指针通知优化的图代码 前言 先把图片上上来: 官方称之为:MFC ActiveX控件:优化 官方是这么介绍的: 可见时关闭激活和在非活动时提供鼠标交互在激活之前不创建窗口的控件。无窗口激活永远不会创建窗口的控件,即使它们被激活也是如此。 Windows对OLE对象有两个主要缺点:它们在活动时...

学无止尽,谨言慎行! 2062

VS_MFCTabCtrl使用教程

转载自:https://blog.csdn.net/qq_25241325/article/details/80254205 下载 一、新建基于对话框的MFC程序TabCtrl_Demo 添加一个TabCtrl控件,绑定变量:CTabCtrl m_tabCtrl。 二、创建Tab标签对应的子对话框 插入3个子对话框,并设置属性Style=Child,Border=None。 为插入的3个子对话框分别添加对话框类CDialog1,CDialog2,CDialog3。 三、在主对话框中添加tab标.

yytyu2017的博客 1236

MFC扩展库BCGControlBar Pro v33.6 - 网格、报表控件功能升级

本文将介绍MFC界面开发组件BCGControlBar Professional for MFC v33.6的一些亮点,欢迎下载相关产品体验~

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 870

mfc控件实现 竖排TAB sheet控件

mfc自带的tabsheet控件是横排按钮在上面的,这个自控件实现在左侧竖排的Tab选择,并且可以添加图标。

MFC基础控件示例

MFC基础控件示例 单选框、带图片的列表框、编辑框、下拉框、复选框、按钮

MFC实现TabCtrl

MFC实现TabCtrl

MFC 多文档程序 用Tab页显示的方式

MFC中的多文档程序,普通的MFC多文档程序是没有一个Tab页面来管理。本程序使用了多个Tab页来管理MFC的文档。

MFCTabCtrl使用教程

示例下载一、新建基于对话框的MFC程序TabCtrl_Demo添加一个TabCtrl控件,绑定变量:CTabCtrl m_tabCtrl。二、创建Tab标签对应的子对话框插入3个子对话框,并设置属性Style=Child,Border=None。 为插入的3个子对话框分别添加对话框类CDialog1,CDialog2,CDialog3。三、在主对话框中添加tab标签子对话框对象并包含对应的头文件#

Hisin Wang的专栏 1万+

MiniGUI 自定义控件教程3

接着上次的教程继续。之前介绍了子类化已有的控件实例的方法,现在介绍子类化类和完全自己重新开始写控件类的方法。这个2种区别就是:子类化类,其实就是OOP里的继承,继承一个已有的控件类,在其基础上作扩展。完全自己重新开始写控件类是我自己的叫法,可以理解为MFC(我个人对MFC相对来说熟悉些,就拿这个做类比了)里的继承自CObject。 这次先介绍完全自己重新开始写控件类的方法。这里我以我自己写的一个M

mingming_killer的专栏 3947

界面设计+自定义按钮实现tab控件功能

网上找的tab控件总是太丑,不符合我们美工的审美要求.就要求我用按钮来实现对话框的切换.这样button就可以采用美工设计的icon了.(最近发觉跟美工合作开发ui也是一件很愉快的事情,除了美工老是埋怨我不能按他的要求来实现界面,没办法,能力有限啊.谁让我用vc呢) 采用技术:mfc类首先让美工画出一张软件界面背景图作为主界面,vc的picture只能支持bmp格式,而且放在vc程序中还有

(RING~~~)Arrgghh! For the last time, I'm a Developer, not a Detector! 1725
llive88
博客等级 码龄15年 0粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值