📄 00000007.htm
字号:
<BR> 表 5.1 一般绘图属性 <BR> 绘制属性 所影响的绘图操作 备注 <BR>----------------------------------------------------------- <BR> 背景色 文本输出 GetBkColor, SetBkColor <BR> 背景模式 文本输出 GetBkMode, SetBkMode <BR> 文本颜色 文本输出 GetTextColor, SetTextColor <BR> 画笔类型 线条输出 只支持实型画笔 GetPenType, SetPenType <BR> 画笔颜色 线条输出 GetPenColor, SetPenColor <BR> 画刷类型 填充操作 只支持实型画刷 GetBrushType, SetBrushType <BR> 画刷颜色 填充操作 GetBrushColor, SetBrushColor <BR> <BR>5.2.4 一般绘图支持 <BR> 这类功能用来完成基本的绘图功能,这些功能包括:画点、直线、圆、 <BR>矩形等。另外还有一些颜色转换方面的功能,可以将特定的 RGB 转换为最接 <BR>近的 256 色调色板中的颜色索引值。接口函数由表 5.2 给出。 <BR> <BR> 表 5.2 一般绘图支持 <BR> 函数 功能说明 <BR>------------------------------------------------------ <BR> SetPixel 设置指定的象素颜色,颜色值以调色板索引给出。 <BR> SetPixelRGB 设置指定的象素颜色,颜色值以 RGB 值给出。 <BR> GetPixel 获取指定点的象素颜色,以调色板索引给出。 <BR> GetPixelRGB 获取指定点的象素颜色,以 RGB 值给出。 <BR> RGB2Index 完成 RGB 值到调色板索引值的转换。 <BR> MoveTo, LineTo 绘制直线。 <BR> Circle 绘制圆。 <BR> Rectangle 绘制矩形。 <BR> <BR>5.2.5 文本输出支持 <BR> 这类功能用来利用系统字体输出文本。可实现无格式文本(TextOut)和 <BR>有格式文本(TabbedTextOut)的输出。作为辅助函数,应用还可以利用 <BR>GetTabbedTextExtent 函数来获得格式化文本字符串的输出尺寸。由于系统 <BR>字体是等宽字体,无格式文本的输出长度就等于单字节字符串个数乘以单个 <BR>字符的宽度。利用 GetCharWidth 以及 GetCCharWidth 可获取单字节字符以 <BR>及双字节字符(汉字)的宽度;利用 GetCharHeight 可获取字符的高度。 <BR> <BR>5.2.6 映射函数支持 <BR> MiniGUI 支持的映射方式有两种,一种和 Win32 的 MM_TEXT 映射方式 <BR>一样,即设备坐标系和逻辑坐标系是一致的;一种和 Win32 的MM_ANISOTROPIC <BR>映射方式一样,逻辑 x 和 y 轴可以以任意的比例映射到对应的坐标轴上。 <BR> 其他的 Win32 映射方式不被支持。 <BR> 通过函数 SetMapMode 设定映射方式。 <BR> 利用 SetWindowExt和 SetViewportExt 可设置 MM_ANISOTROPIC 映射方 <BR>式的坐标轴方向、比例等。利用SetWindowOrg 和 SetViewPortOrg 可以设定 <BR>原点位置。 <BR> 和上述函数的对应的 Get 函数组可用来获取设定值。 <BR> <BR>5.2.7 坐标转换 <BR> 这类函数用来实现设备坐标到逻辑坐标的转换。DPtoLP 将设备坐标转换 <BR>为逻辑坐标,LPtoDP 将逻辑坐标转换为设备坐标。 <BR> <BR>5.2.8 剪切支持 <BR> 这类函数用来实现对 DC 剪切域的操作。和 Win32 不同的是,MiniGUI <BR>的剪切域只支持矩形剪切域。 <BR> ExcludeClipRect 可用来在当前剪切域中排除指定的矩形区域。 <BR> IncludeClipRect 可用来在当前剪切域中包含指定的矩形区域。 <BR> CliprectIntersect 可用来将当前剪切域和指定矩形相交。 <BR> SelectClipRect 将剪切域设置为指定矩形。 <BR> GetBoundsRect 获取包含当前剪切域的最大矩形。 <BR> PtVisible 可判断给定点是否处于剪切域。 <BR> RectVisible 可判断给定矩形是否和剪切域相交。 <BR> <BR>5.2.9 位图支持 <BR> 这类函数用来实现填充操作。 <BR> 利用 FillBox 可以以当前的画刷类型和颜色填充指定矩形。 <BR> 利用 FillBoxWithBitmap 可以用指定的位图填充指定矩形,如果有需要, <BR>该函数可进行位图的缩放。 <BR> 利用 BitBlt 函数可在两个 DC 之间复制图象。 <BR> 利用 StretchBlt 函数可两个 DC 之间复制图象,并完成缩放。 <BR> 利用函数 LoadBitmap 可从Windows BMP文件中装入位图信息。 <BR>UnloadBitmap 则卸载位图信息。 <BR> <BR>5.2.10 图标支持 <BR> MiniGUI 的图标支持和 Win32 API 大致相同,包含如下几种操作: <BR> 创建和销毁图标:LoadIconFromFile、CreateIcon、DestroyIcon。 <BR> 图标绘制支持:DrawIcon。 <BR> 根据需要 MiniGUI 将提供系统图标集,及相应的操作函数。 <BR> <BR>5.2.11 矩形支持 <BR> 这类函数提供了实现矩形相交,合并等一般性的操作,达到 Win32 的 <BR>95% 兼容。下面是这些函数的说明。 <BR> <BR>1) SetRect <BR>void GUIAPI SetRect(RECT* prc, int left, int top, int right, int bottom); <BR>该函数将矩形 prc 设定为参数 left, top, right, bottom 指定的大小。 <BR>2) SetRectEmpty <BR>void GUIAPI SetRectEmpty(RECT* prc); <BR>该函数将矩形 prc 设置为空矩形. 空矩形就是面积为 0 的矩形. 该函数将 <BR>矩形的 left, top, right, bottom 值均设置为 0。 <BR>3) CopyRect <BR>void GUIAPI CopyRect(RECT* pdrc, const RECT* psrc); <BR>该函数将矩形 psrc 复制到 pdrc 中。 <BR>4) IsRectEmpty <BR>BOOL GUIAPI IsRectEmpty(const RECT* PRC); <BR>该函数判断指定矩形是否为空矩形。若为空矩形,则函数返回 TRUE,否则 <BR>返回 FALSE。 <BR>5) EqualRect <BR>BOOL GUIAPI EqualRect(const RECT* prc1, const RECT* prc2); <BR>该函数判断指定的两个矩形是否是相等的矩形。相等的矩形其 left, top, <BR>right, bottom 值均相等。 <BR>6) NormalizeRect <BR>void GUIAPI NormalizeRect(RECT* pRect); <BR>该函数将指定的矩形 pRect 进行正规化处理。矩形的正规化指满足如下条 <BR>件的矩形:left <= right 并且 top <= bottom。 <BR>7) IntersectRect <BR>BOOL GUIAPI IntersectRect(RECT* pdrc, <BR> const RECT* psrc1, const RECT* psrc2); <BR>该函数求两个矩形 psrc1 和 psrc2 的相交区域, 并在 pdrc 中返回相交 <BR>矩形。 <BR>如果 psrc1 和 psrc2 相交,函数返回为 TRUE。 <BR>如果 psrc1 和 psrc2 不相交,函数返回为 FALSE,pdrc 为空矩形 <BR>8) DoesIntersect <BR>BOOL GUIAPI DoesIntersect(const RECT* psrc1, const RECT* psrc2); <BR>该函数判断两个矩形是否相交。 <BR>如果 psrc1 和 psrc2 相交,函数返回为 TRUE。 <BR>如果 psrc1 和 psrc2 不相交,函数返回为 FALSE。 <BR>9) UnionRect <BR>BOOL GUIAPI UnionRect(RECT* pdrc, const RECT* psrc1, const RECT* psrc2); <BR>该函数求两个矩形 psrc1 和 psrc2 相并矩形,并在 pdrc 中返回相并矩形。 <BR>如果 psrc1 和 psrc2 能够进行相并操作,函数返回 TRUE。 <BR>如果 psrc1 和 psrc2 不能进行相并操作,函数返回 FALSE,pdrc 为空矩形。 <BR>10) SubtractRect <BR>BOOL GUIAPI SubtractREct(RECT* pdrc, const RECT* psrc1, const RECT* psrc2); <BR>该函数求两个矩形 psrc1 和 psrc2 相减的矩形, 并在 pdrc 中返回结果 <BR>矩形。 <BR>如果 psrc1 和 psrc2 能够进行相减操作, 函数返回 TRUE。 <BR>如果 psrc1 和 psrc2 不能进行相减操作,函数返回 FALSE,pdrc 为空矩形。 <BR>11) OffsetRect <BR>void GUIAPI OffsetRect(RECT* prc, int x, int y); <BR>该函数将矩形 prc 偏移指定的偏移量 x, y。 <BR>12) InflateRect <BR>void GUIAPI InflateRect(RECT* prc, int cx, int cy); <BR>该函数将矩形 prc 的长和宽分别增加 cx 和 cy。 <BR>13) PtInRect <BR>BOOL GUIAPI PtInRect(const RECT* prc, int x, int y); <BR>该函数判断指定点(x, y)是否处于矩形 prc 中。 <BR>如果指定点在矩形中,函数返回 TRUE;否则返回 FALSE。 <BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.53.193] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -