友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第110章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!





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
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!