WIN32 API Paint 2007.9.27

原创 2007年09月27日 16:07:00

用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

相关文章推荐

Paul M Watt系列文章要点翻译<一>:Guide to WIN32 Paint for Beginners

1.介绍

Win32API学习笔记第六章(四)

Win32API学习笔记第六章(四)

串口编程之一: WIN32 API 中串口DCB 结构的介绍

在应用WIN32  API 对串口进行编程时, 必定会使用到DCB 结构. 下面的DCB 结构的一些介绍.  首先是DCB 结构.  typedef struct _DCB {     ...
  • slj_win
  • slj_win
  • 2014年03月18日 14:56
  • 753

重温WIN32 API ------ 一个简单的UDP服务器类

最近一个项目需要使用简单的UDP进行通信,为方便调用,使用C++类封装了一个简单的UDP服务器类。1 基本思路网络通信程序设计中最难的部分就是IO的处理,不同操作系统平台提供不同的IO处理机制,Win...
  • smstong
  • smstong
  • 2014年12月22日 18:07
  • 3271

<Win32 API> 钩子程序的实现

原文地址:Win32环境下代码注入与API钩子的实现 1. 主要点 挂API钩子分为四步:1. 查找并打开宿主进程,2. 将注入体装入宿主进程中运行,3. 用伪装函数替换目标API,4. 执行伪装...

Win32 API对多线程编程的支持--显示时间(一)

Win32 提供了一系列的 API 函数来完成线程的创建、挂起、恢复、终结以及通信等工作。下面将选取其中的一些重要函数进行说明。 该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线...

C#可以直接调用的Win32API

http://www.cnblogs.com/jxsoft/archive/2012/06/29/2569876.html   整理的Win32 API,可以直接在C#中直接调用,在做WinFor...

重温 Win32 API ----- 截屏指定窗口并打印

朋友说在一个VC++6.0开发的项目中要加入打印窗口的功能,让帮忙写个代码供其调用。这么老的IDE当然不想碰了,而且也不喜欢MFC笨拙不清晰的封装,所以决定采用纯Win32 API,然后用C++类简单...
  • smstong
  • smstong
  • 2014年12月22日 17:12
  • 6137

用MFC实现串口通信(基于Win32 API)

一、API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。 1、打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原...

java 调用win32 api 学习总结

java使用JInvoke调用windows API 使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WIN32 API Paint 2007.9.27
举报原因:
原因补充:

(最多只允许输入30个字)