WIN32 API Paint 2007.9.27

用win32 application做一个很简单的画图程序:

一、调出调色板并选择颜色:

    CHOOSECOLOR cc;    //调色板结构体
    COLORREF cr = 0x00FFFFFF;
    cc.Flags = CC_SOLIDCOLOR;
    cc.lStructSize = sizeof(CHOOSECOLOR);
    cc.hwndOwner = hWnd;
    cc.rgbResult = 0;
    cc.lpCustColors = &cr;
    ChooseColor(&cc);   //出现调色板对话框,并将选择的颜色存入cc.rgbResult中
    hPen = CreatePen(PS_SOLID, 3, cc.rgbResult);//创建一个cc.rgbResult颜色的画笔

二、获得DC方法主要有两个,都要配对使用,一个获得DC,一个删除DC:

1. HDC hDC  = BeginPaint(hWnd, &ps)    //一般只在WM_PAINT中使用。ps是PAINTSTRUCT结构体,其中定义了  一个矩形区域,在这个区域内画图有效。同时函数返回当前实例句柄的DC

    ********   

 EndPaint(hWnd, &ps)  

 

2. HDC hDC = GetDC(HWND)   //这个函数一般是在WM_PAINT以外的消息中使用,取得当前实例句柄的DC并返回。整个实例窗体都是画图有效区域。

 **********

ReleaseDC(HWND, HDC);

 

三、获得当前鼠标位置方法:

1、   

    POINT curp;
    curp.x = LOWORD(lParam);    //  lParam的低字节储存的是鼠标的x坐标
    curp.y = HIWORD(lParam);     //  lParam的高字节储存的是鼠标的y坐标

2、

GetCurrentPositionEx (hdc, &pt) ;    //  将hdc的鼠标当前坐标保存在POINT结构pt中。

 

四、画笔

画笔可以创建多个。在使用时候可以用函数SelectObject(HDC, HPEN)设置当前使用的画笔,此函数返回修改以前的画笔。供用户储存,当使用完新画笔后,再将旧画笔SelectObject进来。

五、单词

LRESULT   CALLBACK   fun();

LRESULT:long

CALLBACK:__stdcall

阅读更多
想对作者说点什么? 我来说一句

VB win32 API downloadVB win32 API download

2009年01月15日 206KB 下载

C# win32 API编程

2011年04月07日 15KB 下载

没有更多推荐了,返回首页

不良信息举报

WIN32 API Paint 2007.9.27

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭