DirectX 处理按键的情况,在后面再详细说 明。 ◆鼠标按键 同键盘一样,DirextX 对鼠标的处理在后面再详细说明。在这里 WM_LBUTTONDOWN 表示鼠标左键被点击,WM_RBUTTONDOWN 表示鼠标右键被点击。 ◆鼠标的坐标 WM_MOUSEMOVE 消息用于追踪鼠标是否移动。 鼠标的坐标被存放于 lParam 中。 通过 LOWORD(lParam)和 HIWORD(lParam)可以分别获取鼠标的用户区的 x 坐标和 y 坐标。 注意,这里用到了 sprintf 函数,作用与 Tc 差不多,只是它不是写屏幕的。它把 需要的格式写入一个临时数组,然后我们需要通过 TextOut 函数将数组中的字符写出 来。 试一试 试试更改画笔后的效果 5)画笔和画刷 所谓画笔,就是用来绘制线条的工具,类似于绘图的笔。画笔有颜色、粗细、线型等性质。 Windows 定义了三种画笔:黑笔 BLACK_PEN,白笔 WHITE_PEN,空笔 NULL_PEN。系统的画笔线型 都是实心的,如果需要其他效果,就要自己定义了。 画笔首先要有一个标识,定义如下: HPEN hPen; 然后,使用画笔前要选择画笔: SelectObject(hdc,GetStockObject(WHITE_PEN)); Windows 下的 C/C++编程 或者创建画笔: hpen = CreatePen(PS_SOLID,3,RGB(255,0,0)); CreatePen 有三个参数,第一个表示类型,PS_SOLID 表示实心;第二个参数表示粗细,以象 素为单位,0 表示 1 个象素;第三个参数表示颜色,RGB 表示相信大家已经熟悉了。Windows 定 义了 7 种笔形, 分别为 PS_SOLID、 PS_DASH、 PS_DOT、 PS_DASHDOT、 PS_DASHDOTDOT、 PS_INSIDEFRAME、 PS_NULL。 试一 试试在屏幕上像 C 一样格式化输出几个 数据。 画笔用过之后,要销毁: DeleteObject(hpen); 画刷用于填充大面积封闭区域,包括背景。系统定义的画刷有 7 个分别为:黑 BLACK_BRUSH, 白 WHITE_BRUSH,灰 GRAY_BRUSH,深灰 DAGRAY_BRUSH,浅灰 LTGRAY_BRUSH,空 NULL_BRUSH 或 HOLLOW_BRUSH。 同样, 如果需要其他效果, 就要自己定义新的画刷。 相应的函数为 SelectObject, CreateSolidBrush,DeleteObject。如果需要详细的使用方法,可以查看其他资料。 具体的使用我们在下一小节以例子来讲解。 6)点和线,多边形和圆 点和线, 所有的 GDI 函数的使用都大同小异,所以这里只给出一个画线的例子,其他的只给出函数, 由大家自己设计。