GDI基础二

本文主要介绍了Windows图形设备接口(GDI)的基础知识,包括如何创建设备上下文、绘制基本图形以及设置绘图属性。通过实例展示了GDI在Windows应用程序中绘制窗口、线条和填充区域的方法,帮助读者理解GDI的基本用法。
摘要由CSDN通过智能技术生成

图形动态定位:
 CRectTracker 类允许用户在视窗里移动一个矩形对象或改变矩形对象的大小;成员函数有:
 void Draw(CDC* pDC) const;//用当前的风格来绘制矩形边框和调整大小
 BOOL Track(CWnd* pWnd, CPoint point, BOOL bAllowinvert = FALSE, CWnd* pWndClipTo = NULL);//一般在WM_LBUTTONDOWN消息处理函数中调用
 BOOL TrackRubberBand(CWnd* pWnd, CPoint point, BOOL bAllowInvert = TRUE);//
 int HitTest(CPoint point) const;//判断某个点是在哪个调整大小的句柄上
 BOOL SetCursor(CWnd* pWnd, UINT nHitTest) const;//在视图的WM_SETCURSOR消息处理函数中调用此函数可以改变光标的形状

 对象的拾取和拖动示例,步骤:
 1)用MFC APPWizard创建单文档应用程序TrackDemo.
 2)为CTrackDemoView类增加共有成员变量:
  BOOL m_bSelect;//是否可以选择对象
  CRect m_elliRect;//椭圆的外接矩形
  CRectTracker m_tracker;//
 3)为CTrackDemoView类增加 RectInRect函数,用来判断一个矩形是否包含另一个矩形;
 4)用ClassWizard为CTrackDemoView类添加 WM_LBUTTONDOWN 消息;
 5)用用ClassWizard为CTrackDemoView类添加 WM_SETCURSOR 消息;

 常用的定位技术有:参考定位、约束定位、动态定位、素描式定位;动态定位的方法有:橡皮条技术、牵引技术。
 CRectTracker 类已经为我们构筑了图形动态定位的框架,只要以此为基类派生出一个 CMetaTracker 类,并在该
 类中添加 CRectTracker 的虚方法 DrawTrackerRect 就可实现直线、矩形、圆等的橡皮条方法类。

字体
 字体分为四种基本类型:光栅字体(点阵字体)、矢量字体、TrueType字体和OpenType字体。
 字体属性:字样(宋体、黑体...)、风格(粗体、斜体...)、尺寸(毫米、英寸、号数...)
 逻辑字体的具体属性可由 LOGFONT 结构来描述。
 BOOL CreatePointFontIndirect(const LOGFONT* lpLogFont, CDC* pDC=NULL);//
 当使用完CFont 对象后,必须将其和设备环境分离,并删除字体对象。

 使用字体对话框CFontDialog


 常用文字输出函数:
 virtual BOOL TextOut(int x, int y, LPCTSTR lpscString, int nCount);//
 BOOL TextOut(int x, int y, const CString& str);//用当前字体在指定位置显示一个文本

 virtual BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, LPCTSTR lpscString, UINT nCount, LPINT lpDxWidths);
 BOOL ExtTextOut(int x, int y, UINT nOptions, LPCRECT lpRect, const CString& str, LPINT lpDxWidths);//用当前字体在指定矩形框内显示一个文本</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值