//先把各素材绘制到内存图象m_dibBanner
//背景
m_dibBkg.StretchTo(&m_dibBanner,0,0,rc.right,m_dibBanner.Height(),0,0,m_dibBkg.Width(),m_dibBkg.Height(),FALSE);
//标题(“QQ2009”)
m_dibCaption.AlphaTo(&m_dibBanner,8,5,0,0);
//装饰图案,即QQ所谓的“底纹”
m_dibTatoo.AlphaTo(&m_dibBanner,rc.right-m_dibTatoo.Width(),0,0,0);
//用户头像
m_dibUser.DrawTo(&m_dibBanner,7,25,0,0,m_dibUser.Width(),m_dibUser.Height());
//用户名及签名
m_dibUserBanner.DrawTo(&m_dibBanner,54,25,0,0,m_dibUserBanner.Width(),m_dibUserBanner.Height());
//系统按钮
//最小化
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_ENTIREWIDTH - NCB_SPACE,yPos,gRcBtn[0].x,gRcBtn[0].y, NCB_MINWIDTH,NCB_HEIGHT);
//关闭
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_CLOSEWIDTH - NCB_SPACE,yPos, gRcBtn[NCB_CLOSENORMAL].x,gRcBtn[NCB_CLOSENORMAL].y,NCB_CLOSEWIDTH,NCB_HEIGHT);
//最大化/还原
if(IsZoomed())
{
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_ENTIREWIDTH - NCB_SPACE + NCB_MINWIDTH,yPos,
gRcBtn[NCB_RESTORENORMAL].x,gRcBtn[NCB_RESTORENORMAL].y,NCB_MAXWIDTH,NCB_HEIGHT);
}
else
{
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_ENTIREWIDTH - NCB_SPACE + NCB_MINWIDTH,yPos,
gRcBtn[NCB_MAXNORMAL].x,gRcBtn[NCB_MAXNORMAL].y,NCB_MAXWIDTH,NCB_HEIGHT);
}
//绘制到窗口
//标题栏区域
m_dibBanner.Draw(hdc,0,0,0,0,rc.right,NCB_TITLEHEIGHT,rc.right,NCB_TITLEHEIGHT);
//底栏区域
m_dibBanner.Draw(hdc,0,rc.bottom - NCB_BOTTOMHEIGHT,0,NCB_TITLEHEIGHT,rc.right,
NCB_BOTTOMHEIGHT,rc.right,NCB_BOTTOMHEIGHT);
先把各素材绘制到内存图象m_dibBanner
//背景
m_dibBkg.StretchTo(&m_dibBanner,0,0,rc.right,m_dibBanner.Height(),0,0,m_dibBkg.Width(),m_dibBkg.Height(),FALSE);
//标题(“QQ2009”)
m_dibCaption.AlphaTo(&m_dibBanner,8,5,0,0);
//装饰图案,即QQ所谓的“底纹”
m_dibTatoo.AlphaTo(&m_dibBanner,rc.right-m_dibTatoo.Width(),0,0,0);
//用户头像
m_dibUser.DrawTo(&m_dibBanner,7,25,0,0,m_dibUser.Width(),m_dibUser.Height());
//用户名及签名
m_dibUserBanner.DrawTo(&m_dibBanner,54,25,0,0,m_dibUserBanner.Width(),m_dibUserBanner.Height());
//系统按钮
//最小化
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_ENTIREWIDTH - NCB_SPACE,yPos,gRcBtn[0].x,gRcBtn[0].y, NCB_MINWIDTH,NCB_HEIGHT);
//关闭
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_CLOSEWIDTH - NCB_SPACE,yPos, gRcBtn[NCB_CLOSENORMAL].x,gRcBtn[NCB_CLOSENORMAL].y,NCB_CLOSEWIDTH,NCB_HEIGHT);
//最大化/还原
if(IsZoomed())
{
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_ENTIREWIDTH - NCB_SPACE + NCB_MINWIDTH,yPos,
gRcBtn[NCB_RESTORENORMAL].x,gRcBtn[NCB_RESTORENORMAL].y,NCB_MAXWIDTH,NCB_HEIGHT);
}
else
{
m_dibBtnRc.DrawTo(&m_dibBanner,rc.right - NCB_ENTIREWIDTH - NCB_SPACE + NCB_MINWIDTH,yPos,
gRcBtn[NCB_MAXNORMAL].x,gRcBtn[NCB_MAXNORMAL].y,NCB_MAXWIDTH,NCB_HEIGHT);
}
//绘制到窗口
//标题栏区域
m_dibBanner.Draw(hdc,0,0,0,0,rc.right,NCB_TITLEHEIGHT,rc.right,NCB_TITLEHEIGHT);
//底栏区域
m_dibBanner.Draw(hdc,0,rc.bottom - NCB_BOTTOMHEIGHT,0,NCB_TITLEHEIGHT,rc.right,
NCB_BOTTOMHEIGHT,rc.right,NCB_BOTTOMHEIGHT);
相关推荐
序渐进实现仿QQ界面(一):园角矩形与双缓冲贴图窗口 - CSDN论坛 - CSDN.NET.mht
### 循序渐进实现仿QQ界面:关键技术点解析 #### 一、园角矩形与双缓冲贴图窗口 为了实现仿QQ界面中的园角矩形效果,开发者需要掌握如何利用Windows API来创建园角矩形区域。具体做法如下: 1. **使用...
这篇文章是关于如何模仿QQ界面的教程,主要集中在创建园角矩形窗口和使用双缓冲贴图技术。首先,作者指出虽然网上有许多关于QQ界面仿制的讨论,但实际上真正优秀的示例并不多,因此决定编写这样一个程序,专注于界面...
在本教程中,我们将深入探讨如何“循序渐进实现仿QQ界面(四)”。这个教程是基于VC6,一个经典的Microsoft Visual C++ 6.0集成开发环境,虽然现在可能较旧,但它仍然是学习Windows应用程序开发的良好平台。在本阶段...
《山寨版QQ——韩顺平循序渐进学Java》是一个基于韩顺平老师的Java教学视频创作的项目,旨在帮助学习者深入理解Java编程语言,尤其是网络编程和GUI设计方面。这个项目分为两大部分:QQ客户端和服务器端,涵盖了基础...
本项目"QT实现高仿QQ QT实现QQ界面"旨在通过QT框架来复刻QQ的经典界面,从而展示如何利用QT库来创建类似QQ这样的即时通讯软件的用户界面。下面将详细介绍这个项目可能涉及的关键知识点: 1. **QT Widgets模块**:QT...
编译有问题的,请到以下地址去看: ... 循序渐进实现仿QQ界面(五):半透明窗体与不透明控件的配套源码,文章请见: http://blog.csdn.net/ringphone/archive/2010/02/11/5306231.aspx
缺头文件的,请到下面文章的地址去看。 循序渐进实现仿QQ界面(二):贴图按钮的三态模拟的配套源码,文章请见:http://blog.csdn.net/ringphone/archive/2010/01/10/5171490.aspx
实现一个简易仿qq登录界面,要求实现: 1) 登录界面有帐号、密码文本和编辑框,登录和退出按钮。在程序中维护一个帐号密码的数组,用以判断正确登录与否。如果登录成功,则进入qq主界面,否则清空帐号和密码编辑框,...
《循序渐进Linux 第2版》PDF下载 试读
下面我们将详细探讨如何实现这样一个界面。 一、界面布局 1. 布局结构:仿QQ登录界面通常采用简洁明了的布局,主要分为上中下三部分。上方是QQ的logo和品牌信息,中间是输入账号和密码的表单,下方则可能包含记住...
【标题】"仿QQ登录界面"是一个项目,旨在利用MFC(Microsoft Foundation Classes)库来创建一个类似于腾讯QQ的登录窗口。MFC是微软为Windows应用程序开发提供的一组C++类库,它使得开发者能够方便地构建用户界面,...
韩顺平.循序渐进学.java.从入门到精通-之一PPT.pp
资源名称:循序渐进学java视频教程之山寨版QQ资源目录:【】abbr_2b0a956c6deaffd161055bcc69352490【】abbr_69fe1d0216f529000a178ba7a943dbd8【】abbr_83be30c3d0d895e0b4887fe4e9c049f2【】abbr_89247c1a9c971d54...
2. **仿QQ窗口**:这里的“仿QQ窗口”是指创建一个与腾讯QQ客户端用户界面相类似的窗口。这涉及到GUI(图形用户界面)的设计,包括窗口布局、控件选择、颜色搭配等,以及模拟QQ的交互行为,如消息发送、接收、状态...
首先,"winform高仿qq登陆界面"这个标题暗示了我们需要使用Microsoft的Windows Forms(WinForms)技术来构建一个与腾讯QQ登录界面类似的用户界面。WinForms是.NET Framework的一部分,用于开发桌面应用程序,提供了...
编译有问题的,请到以下地址去看: ... 循序渐进实现仿QQ界面(六):异型菜单与内建滚动条自绘的配套源码,文章请见: http://blog.csdn.net/ringphone/archive/2010/03/13/5377522.aspx
在本文中,我们将深入探讨如何使用纯Windows API来实现一个仿QQ界面的程序,这对于初学者来说是一个很好的实践项目,可以提升对Windows图形编程的理解。Windows API是Microsoft Windows操作系统提供的核心函数库,它...
在本文中,我们将深入探讨如何使用C++编程语言来实现一个仿照QQ2008版界面的应用程序。QQ作为一款流行的即时通讯软件,其用户界面设计独特且易用,吸引了大量的用户。为了重现这样的用户体验,我们需要理解界面设计...
在本项目中,我们主要探讨的是如何使用C++编程语言来实现一个仿QQ界面的应用程序。C++是一种强大的、面向对象的编程语言,它提供了丰富的功能和灵活性,适合开发复杂的桌面应用程序,如聊天软件的用户界面。QQ界面的...