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

Win32 API编程简介Demo程序

Windows编程的方法主要有两种方法,                     传统编写法:利用API函数;                     交互式方法:利用MFC类库。        ...
  • markmin214
  • markmin214
  • 2013年03月29日 11:25
  • 1845

Win32 API 窗口编程模板

#include //窗口函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM );    //入口函数 WinMain...
  • fanhenghui
  • fanhenghui
  • 2016年10月22日 17:26
  • 674

重温WIN32 API ------ 最简单的Windows窗口封装类

如果你也厌倦了复杂的MFC,这里提供了一个非常简单的把C++类、对象与窗口类、对象联系起来的方式。...
  • smstong
  • smstong
  • 2015年01月04日 17:14
  • 11403

C#调用Win32 api学习总结

从.NET平台调用Win32 API         Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Inte...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年03月19日 11:39
  • 4005

win32 api遍历文件,进程

// cmd_mfc.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include #include #include #include using n...
  • earbao
  • earbao
  • 2014年03月14日 12:11
  • 1362

Win32API下的多线程编程入门

多线程,Multi-Thread。移步别处理解Thread和Process。多线程可用多种API实现,这里用Win32 API实现最简单的多线程,线程彼此独立,不涉及线程间的数据共享。 先直接上程序:...
  • u010153703
  • u010153703
  • 2014年08月08日 18:25
  • 1391

win32 字体 api学习总结

TrueType字体 TrueType字体,中文名称全真字体,是由Apple公司和Microsoft公司联合提出的一种采用新型数学字形描述技术的计算机字体。它用数学函数描述字体轮廓外形,含有字形构造、...
  • bcbobo21cn
  • bcbobo21cn
  • 2017年06月18日 22:30
  • 727

win32api显示BMP图片的最简单方案

一、用自带资源 /*--------------------------------------- BITBLT.C -- BitBlt Demonstration ...
  • sj361169
  • sj361169
  • 2015年12月29日 23:48
  • 2092

java 调用win32 api 学习总结

java使用JInvoke调用windows API 使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。  官网使用...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年03月18日 09:06
  • 5278

Win32 API 串口编程

目录 一串口通信基础       1.1串口通信原理与特点      1.2串口通信的传输方式      1.3串口通信的同步技术      1.4串行接口标准      二 API函数实现串口通信 ...
  • changyourmind
  • changyourmind
  • 2016年08月09日 11:22
  • 1563
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WIN32 API Paint 2007.9.27
举报原因:
原因补充:

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