1.BeginPaint
BeginPaint函数为指定窗口进行绘图工作的准备,并用将和绘图有关的信息填充到一个PAINTSTRUCT结构中。
HDC BeginPaint(
HWND hwnd, // 窗口的句柄
LPPAINTSTRUCT lpPaint // 绘制信息
);
hdc=BeginPaint(hwnd,&ps);
//do somesthing
//EndPaint(hwnd,&ps);
2.GetDC
该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。
hDC=GetDC(hWindow);
//do sth....
ReleaseDC(hwindow,hDC);
3.TextOut
该函数用当前选择的字体、背景颜色和正文颜色将一个字符串写到指定位置。
BOOL TextOut(
HDC hdc, //设备描述表句柄
int nXStart, // 字符串的开始位置 x坐标
int nYStart, // 字符串的开始位置 y坐标
LPCTSTR lpString, // 字符串
int cchString // 字符串中字符的个数
);
TextOut(hdc,10,10,"This is a skeleton application!",strlen("This is a skeleton application!"));
4.DrawTest
该函数在指定的矩形里写入格式化的正文,根据指定的方法对正文格式化(扩展的制表符,字符对齐、折行等)
int DrawText(
HDC hDC, // 设备描述表句柄
LPCTSTR lpString, // 将要绘制的字符串
int nCount, // 字符串的长度
LPRECT lpRect, // 指向矩形结构RECT的指针
UINT uFormat // 正文的绘制选项
);
DrawText(hdc,TEXT("Hello,win api"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
5.GetClientRect
该函数获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标为(0,0),函数的作用总的来说就是把客户区的大小写进第二个参数所指的Rect结构当中
BOOL GetClientRect
(
HWND hWnd, // 窗口句柄
LPRECT lpRect // 客户区坐标
);
GetClientRect(hwnd,&rect);
6.DrawIcon
该函数在限定的设备上下文窗口的客户区域绘制图标
BOOL DrawIcon(HDC hDC,//窗口设备上下文的句柄
int X,//指定图标左上角的逻辑X坐标
int Y, //指定图标左上角的逻辑y坐标
HICON hlcon //被绘制图标的句柄。图标资源必须已经通过Loadlcon或Loadlmage函数被装载过
}
DrawIcon(hDC, xPos, yPos, LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON3)));
7.LoadIcon
该函数从与hInstance模块相关联的可执行文件中装入lpIconName指定的图标资源,仅当图标资源还没有被装入时该函数才执行装入操作,否则只获取装入的资源句柄.
LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON3))
8. SetTextColor
原型:WINGDIAPI COLORREF WINAPI SetTextColor (HDC, COLORREF)
作用:设置指定设备环境(HDC)的字体颜色
SetTextColor(hdc, RGB(rand()%256,rand()%256,rand()%256));
9.SetBkColor
原型:COLORREF SetBkColor( HDC hdc, COLORREF crColor );
作用:用指定的颜色值来设置当前的背景色
SetBkColor(hdc, RGB(255,255,255));
10. SetBkMode
SetBkMode成员函数用于设置文本背景式
int SetBkMode(
HDC hdc, // handle of device context
int iBkMode // flag specifying background mode,OPAQUE或者 TRANSPARENT
);
SetBkMode(hdc, TRANSPARENT);
11.按键监听
case WM_CHAR:
{
// get the character
char ascii_code = wparam;
unsigned int key_state = lparam;//部分
12.位置监听
case WM_MOVE:
{
// extract the position
int xpos = LOWORD(lparam);
int ypos = HIWORD(lparam);
13.鼠标位置
case WM_MOUSEMOVE:
{
// get the position of the mouse
int mouse_x = (int)LOWORD(lparam);
int mouse_y = (int)HIWORD(lparam);
14.CreatePen
BOOL CreatePen(int nPenStyle, int nWidth, COLORREF crColor);
用指定的样式、宽度和颜色创建一个画笔
nPenStyle ------ Long,指定画笔样式,可以是下述常数之一
PS_SOLID: 画笔画出的是实线
PS_DASH: 画笔画出的是虚线(nWidth必须是1)
PS_DOT: 画笔画出的是点线(nWidth必须是1)
PS_DASHDOT: 画笔画出的是点划线(nWidth必须是1)
PS_DASHDOTDOT: 画笔画出的是点-点-划线(nWidth必须是1)
PS_NULL: 画笔不能画图
PS_INSIDEFRAME:画笔在由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框中画图。如指定的准确RGB颜色不存在,就进行抖动处理
nWidth --------- Long,以逻辑单位表示的画笔的宽度
crColor -------- Long,画笔的RGB颜色
demo://the red pen with 1 pix
HPEN red_pen=CreatePen(PS_SOLID,1,RGB(255,0,0));
//the white_dash pen with 1 pix
HPEN white_dash_pen=CreatePen(PS_DASHED,1,RGB(255,255,255));
15.SetPixel
COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor)
该函数将指定坐标处的像素设为指定的颜色
int x = rand()%400;
int y = rand()%300;
COLORREF color = RGB(rand()%255,rand()%255,rand()%255);
SetPixel(hdc, x,y, color);