本文主要讲到的是画笔应用,在Wince -06环境下,画笔应用很广泛,很有技巧,这里笔者要着重介绍。

  设备环境可以用一下图表示,主要是让大家大致了解Wince -06的设备环境,下面在图形舍虚设计中会用到。

画笔颜色的表示:

颜色用COLORREF类型标识

PGR(cRed,cGreen,cBlue)给COLORREF赋值;

这里一般英文前面都加一个小写字母,而相应的单词首字母是大写。(这里涉及到匈牙利命名法)

取值范围为0~255之间,举例:

RGB(0X00,0X00,00)------表示黑色;

RGB(0XFF,0XFF,0XFF)------表示白色;

RGB(0X00,0XFF,0x00)------表示绿色。

要进行图形程序设计,首先就得获取设备环境,下面来介绍怎么获取设备环境。设备环境表示为HDC

设备环境的获取:

* 处理WM_PAINT消息函数中使用

HDC BeginPaint(HWND hwnd,LPPAINTSTRUCT lpPaint);

void EndPaint(HWND hwnd,PAINTSTRUCT&ps);     //释放内存环境,

处理非WM_PAINT消息的函数中使用

HDC GetDCH(HWND hwnd);

int ReleaseDC(HWND hwnd,HDC hdc);    //释放哪一个

下面要开始进行绘图了,其绘图的基本步骤如下:

*创建好画笔或画刷对象

*将创建好的画笔或者画刷选入设备对象

*调用绘制图形的函数进行绘制

*恢复原有设备环境设置

*删除创建的画笔或者画刷对象

画笔的创建(如果是自己获取的,就不用释放了):

*画笔的定义:

  HPEN hpen;

*画笔的创建:

1、GetStockObject(int)

BLACK_PEN      黑色画笔

  WHITE_PEN     白色画笔

2、CreatePen(int nPenstyle,int nWidth,COLORREF crColor);

PS_SOLID    实线

PS_DASH     虚线

画笔的使用

选入设备环境

  SelectObject(HDC hdc,HGDIOBJ hgdiobj);

   //使用绘图函数

  .........................

  //恢复设备环境

  SelectObject(HDC hdc,HGDIOBJ hgdiobj)

  删除创建的对象

  DeleteObject(HGDIOBJ hObject);

Wince 设备环境和画笔应用的更多相关文章

  1. WINCE设备开机灰屏问题(很怪异)

    WINCE设备开机灰屏问题(很怪异) 1.     问题现象 图1 无法进入系统,虽然没有调试信息,但应该可以判断是程序跑飞了.我们这款产品用到3种显示屏(采用不同的驱动IC),可是测试发现1和2号屏 ...

  2. Visual C++ 打印编程技术-内存设备环境

    1.内存设备环境 内存设备环境是一个没有设备与它联系的环境.一般利用与某个标准设备环境兼容的内存设备环境把一个位图复制到屏幕上去.为此可以先创建一个与某个标准设备环境兼容的内存设备环境,然后把所要显示 ...

  3. VB中的GDI编程-1 设备环境DC

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

  4. GDI 设备环境句柄(2)

    WM_PAINT 消息的触发 Windows 程序在以下情况会触发WM_PAINT消息: 窗口被移动导致被遮盖部分暴露出来 用户调整窗口的大小(当窗口类的 style 字段被设置为 CS_HREDRA ...

  5. C#通过SendARP()获取WinCE设备的Mac网卡物理地址

    ARP(Address Resolution Protocol) 即 地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议. SendARP(Int32 dest, Int32 host, ...

  6. wince mobile环境下播放WAV声音

     [DllImport("coredll", EntryPoint = "PlaySound")]         public static extern i ...

  7. wince开发环境搭建与全套教程

    http://www.cnblogs.com/zhchongyao/archive/2010/12/28/1919176.html http://blog.csdn.net/weiren2006/ar ...

  8. [转]Device Context 设备环境 设备上下文 理解

    http://blog.csdn.net/p424671075/article/details/7235601

  9. GDI 画笔(9)

    使用现有画笔 Windows 提供三种备用画笔(Stock Pen):BLACK_PEN(黑色画笔).WHITE_PEN(白色画笔).NULL_PEN(不绘制任何图形的画笔). 调用 GetStock ...

随机推荐

  1. 【转】浅析C语言的非局部跳转:setjmp和longjmp

    转自 http://www.cnblogs.com/lienhua34/archive/2012/04/22/2464859.html C语言中有一个goto语句,其可以结合标号实现函数内部的任意跳转 ...

  2. iomanip.h

    http://baike.baidu.com/link?url=zuNLgcUVylhUYYefyV13F38NChIMx8nnCEWV5zkkTQMrrSdKPxUERZuydSHtp6sXukWv ...

  3. codeforces 630J Divisibility

    J. Divisibility time limit per test 0.5 seconds memory limit per test 64 megabytes input standard in ...

  4. [C语言 - 4] 指针

    存放变量地址的变量 int a = 1; int *p; p = &a;   在64位系统中,占用8个字节 直接引用 间接引用 *p : 指针指向的变量的值 不要使用未初始化的指针     1 ...

  5. Android应用开发学习之相对布局

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 相对布局RelativeLayout是指按照组件之间的相对位置进行布局,如一个组件在另一个组件的左边.右边.上边或下 ...

  6. viPlugin安装破解

    viPlugin是一个eclipse 针对vi的插件,使用此插件可以让你在使用eclipse进行编码时使用几乎所有vi命令,可以极大的提高开发编码效率.  安装  点击你的eclipse中的 help ...

  7. animate平滑回到顶部

    Js: //回到顶部 $(".totop").click(function () { $("body,html").animate({scrollTop: 0} ...

  8. Javascript继承实现

    S1:js中一切皆对象,想想如果要实现对父对象属性和方法的继承,最初我们会怎样子来实现呢,考虑到原型的概念,最初我是这样来实现继承的 function Parent(){ this.name='123 ...

  9. nginx将http重定向到https

    1.rewrite server { listen 80; server_name test.com; rewrite ^(.*)$ https://$host$1 permanent; } 2. n ...

  10. PROCESS_YIELD()宏和C语言的switch语句< contiki学习笔记之七>

    写在前面:  按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事 ...