图形动态定位: 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);//用当前字体在指定矩形框内显示一个文本</ |