首页 > 其他 > 详细

在窗口上划线

时间:2017-02-15 23:54:01      阅读:237      评论:0      收藏:0      [点我收藏+]

  利用Windows gdi给创建的窗口划线

  其中用到的函数有:

  DC (设备上下文, Device Contexts)是 GDI 编程中一个很基础同时也很重要的概念,是windows提供的,操作物理设备(显示屏,打印机)的接口。

  

  

  BeginPaint 与 EndPaint

  用于从目标窗口获取可画图的 DC,以及关闭这个 DC。

  

HDC BeginPaint(
  _In_   HWND hwnd,             // 传入想要获取 DC 的窗口句柄
  _Out_  LPPAINTSTRUCT lpPaint  // 保存目标窗口的绘图信息
);
 
 
BOOL EndPaint(
  _In_  HWND hWnd,                  // 目标窗口的句柄
  _In_  const PAINTSTRUCT *lpPaint  // 目标窗口的绘图信息
);

 

  

  SelectObject

  设置目标 DC 选中指定的对象(如画笔、画刷、图片等等)。

   

HGDIOBJ SelectObject(
  _In_  HDC hdc,        // 目标 DC 的句柄
  _In_  HGDIOBJ hgdiobj // 被选中的对象
);

 

  

  CreatePen

  创建一个画笔(pen)对象。

   

HPEN CreatePen(
  _In_  int fnPenStyle,     // 样式
  _In_  int nWidth,         // 宽度
  _In_  COLORREF crColor    // 颜色
);

 

  

  MoveToEx

  移动绘制的初始位置。未移动则默认是 (0,0)。(C语言基础好的可以联想 fseek 函数)

   

BOOL MoveToEx(
  _In_   HDC hdc,           // 操作目标DC的句柄
  _In_   int X,             // x 坐标
  _In_   int Y,             // y 坐标
  _Out_  LPPOINT lpPoint    // 保存移动后的当前坐标
);

 

  

  LineTo

  使用当前选中的对象(selected object、通常是画笔)从当前位置绘制一条直线到目标位置。

  

BOOL LineTo(
  _In_  HDC hdc,    // 目标DC句柄
  _In_  int nXEnd,  // 目标位置 x 坐标
  _In_  int nYEnd   // 目标位置 y 坐标
);

 

  

void Paint(HWND hwnd) 
{
    // paint struct 绘图结构体,存储目标窗口可以绘图的客户端区域(client area)
    PAINTSTRUCT ps;
    HDC hdc;   // DC(可画图的内存对象) 的句柄
    HPEN hpen; // 画笔
 
    // 通过窗口句柄获取该窗口的 DC
    hdc = BeginPaint(hwnd, &ps);
    // 创建画笔
    hpen = CreatePen(PS_SOLID, 1, RGB(255,0,0));
    // DC 选择画笔
    SelectObject(hdc,hpen);
    // (画笔)从初始点移动到 50,50
    MoveToEx(hdc, 50, 50, NULL);
    // (画笔)从初始点画线到 100,100
    LineTo(hdc, 150, 100);
 
    EndPaint(hwnd, &ps);
}

 

  

在窗口上划线

原文:http://www.cnblogs.com/gdxzdad/p/6403797.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!