SetRectEmpty 将矩形设置为空(所有坐标均为0)
CopyRect 从源矩形中拷贝维度到矩形中
EqualRect 判断两个矩形是否相等
InflateRect 扩大矩形的宽和高
DeflateRect 减小矩形的宽和高
NormalizeRect 使用矩形的宽和高标准化
OffsetRect 按指定的偏移量移动矩形
SubtractRect 从一个矩形中减去另一个矩形
IntersectRect 设置矩形为两个矩形的交
UnionRect 设置矩形为两个矩形的并
LPCRECT 转换CRect对象为LPCRECT
…………………………………………………………Page 519……………………………………………………………
LPRECT 转换CRect对象为LPRECT
= 拷贝一个矩形的维度到CRect对象
== 判断两个矩形的维度是否相等
!= 判断两个矩形是否不等
+= 将指定的偏移量添加到CRect对象或扩展CRect
对象
…= 从CRect对象中减去指定的偏移量或缩小CRect
对象
&= 设置CRect对象为CRect对象和另一矩形的交
|= 设置CRect对象为CRect对象和另一矩形的并
+ 将指定的偏移量添加到CRect对象或扩展CRect
对象,并返回一个CRect对象
从CRect对象减去指定的偏移量或缩小CRect对
象,并返回一个CRect对象
续表9。3
成员函数 描述
& 返回CRect对象和另一矩形的共同部分
| 返回CRect对象和另一矩形的并
9。1。2 显示设备上下文
对于在视类的OnDraw成员函数中使用设备上下文进行输出的这种情
况,我们已经以前面讲述文档和视时给出了一些示例,因此这里就不
再重复叙述,读者可以参考前面所讲述的内容。下面我们来看一下如
何自己构造设备上下文,并通过该设备上下文来进行绘制。
在示例程序MulticlrdCaption中,我们通过CWindowDC对象获得包括
客户区和非客户区的显示设备上下文,然后将窗口的标题绘制为五彩
的。
#include
#include
// 派生自己的应用程序类
…………………………………………………………Page 520……………………………………………………………
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
// 应用程序主窗口类
class CMyWnd : public CFrameWnd
{
protected:
void PaintTitleBar(BOOL bActive);
// 声明主窗口的消息处理函数
afx_msg void OnNcPaint();
afx_msg BOOL OnNcActivate(BOOL bActive);
DECLARE_MESSAGE_MAP();
};
// 初始化应用程序的实例
BOOL CMyApp::InitInstance()
{
// 创建应用程序主窗口
CMyWnd *pWnd=new CMyWnd;
pWnd…》Create(NULL; 〃具有五彩标题条的窗口〃);
// 显示应用程序主窗口,并更新客户区
pWnd…》ShowWindow(SW_SHOW);
pWnd…》UpdateWindow();
m_pMainWnd=pWnd;
return TRUE;
…………………………………………………………Page 521……………………………………………………………
}
// 声明应用程序对象
CMyApp MyApp;
// 应用程序主窗口的消息映射
BEGIN_MESSAGE_MAP(CMyWnd; CWnd)
ON_WM_NCPAINT()
ON_WM_NCACTIVATE()
END_MESSAGE_MAP()
// 绘制窗口的标题条,参数 bActive 代表窗口的当前激活状态
void CMyWnd::PaintTitleBar(BOOL bActive)
{
// 创建代表整个窗口的显示设备上下文对象
CWindowDC dc(this);
CRect rc;
// 获得窗口矩形及其宽度
GetWindowRect(rc);
UINT nWidth=rc。Width();
// 获得窗口边框的度量
UINT nXFrame=GetSystemMetrics(SM_CXSIZEFRAME);
UINT nYFrame=GetSystemMetrics(SM_CYSIZEFRAME);
// 获得窗口标题条的高度
UINT nYCaption=GetSystemMetrics(SM_CYCAPTION);
COLORREF cr;
if (bActive)
{
// 获得当窗口处于激活状态时其标题条的颜色
…………………………………………………………Page 522……………………………………………………………
cr=GetSysColor(COLOR_ACTIVECAPTION);
// 按从红到绿,再到蓝的渐变规律绘制标题条
for (UINT j=nYFrame; j
小说推荐
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- Linux实用培训教程(PDF)
- -Page 1-rrktqt的个人空间 Linux实用培训教程第一部分 作者:红联Linux实用培训教程第一部分-共三部分解的Linux知识,循序渐进的介绍Linux相关知识,从入门到提高,希望对所有学习Linux的朋友都有帮助 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章
- 最新章:第42章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章
- 路由器基本知识及应用实例(DOC格式)
- 第二章 路由器第一节 路由器发展概述自从1984年问世至今,路由器已经走过了近20年的快速技术发展历程。路由器的应用领域不断扩展、从单一的互通网关逐渐扩展到覆盖广域网、城域网乃至用户接入的各个领域。近年来,路由器早已逐渐脱离单纯用于企业网出口和互联的概念,开始成为运营网络和各种专用业务网络的核心设备
- 最新章:第48章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章