Win32 SDC 编程



GDI 绘图的画布


绘图的画布  ---- 窗口客户区参数:

typedef struct _RECT

{

LONG  left;  

LONG top;

LONG right;

LONG bottom

}RECT;


获取窗口客户区域参数:

BOOL GetClientRect(

HWND  hWnd, // 窗口句柄

LPRECT lpRect  // 存储矩形结构地址

);

获取时机: 在WM_PAINT 消息中获取的是窗口尺寸改变后客户区参数

如果想要画出的图形随窗口变化,需要在该消息中使用该函数.


GDI  基本图形------像素操作


设置 像素的颜色:

COLORREF SetPixel(

HDC hdc,   // 设备环境 句柄

int    x,        // 像素的x坐标

int   y,         // 像素的y坐标

COLORREF crColor  // 像素颜色

);

GDI 基本图形绘制API

BOOL GetCurrentPositionEx(
  HDC hdc,  // handle of device context
  LPPOINT lpPoint 
            // address of structure receiving current position
);
 

GetCurrentPositionEx(hdc,&pt);

直线

BOOL  MoveToEx(

HDC  hdc,  // 设备句柄

int     X,       // 目标点的x坐标

int    Y,     // 目标点的y坐标

LPPOINT  lpPoint   // 存放当前点的结构体指针

);

BOOL LineTo(HDC hdc, int nXEnd,int nYEnd);

矩形

BOOL Rectangle( HDC hdc, 

int nLeftRect,

int nTopRect,

int nRightRect,

int nBottomRect

);


GDI 的画笔----使用系统画笔


HPEN  hPen,oldPen;

hPen=(HPEN)GetStockObject(WHITE_PEN);

oldPen = (HPEN)SelectObject(hdc,hPen);

GDI 绘图函数调用

SelectObject(hdc,oldPen); //恢复原来的画笔


GDI 创建画笔

HPEN CreatePen(int fnPenStyle  // 线型

int nWidth, // 画笔线宽,以像素为单位

COLORREF crColor   // 画笔颜色 ,RGB

);

线型: PS_SOLID  PS_DASH PS_DOT   PS_DASHDOT等

使用创建的画笔:

HPEN hPen,oldPen;

hPen = (HPEN)Create(PS_DASHDOTDOT,1,RGB(255,0,0));

oldPen = (HPEN)SelectObject(hdc,hPen);

// 绘图

SelectObject(hdc,oldPen);  // 恢复原来的画笔

DeleteObject(hPen);

猜你喜欢

转载自blog.csdn.net/liulong1010/article/details/42804121
今日推荐