本文主要讲到的是画笔应用,在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. 关于scrollTop的那些事

    大家在实际项目中,应该是要经常用到scrollTop的,它表示的是可视窗口距离页面顶部的距离,这个scrollTop是可读写的,所以可以用来做页面滚动. 但是大家或多或少遇到一些浏览器兼容问题,为什么 ...

  2. 修改Map中确定key对应的value问题

    今天在码代码的时候出现一个没有预料的问题: 先看下面的代码: public static void main(String[] args) { String[] files=new String[]{ ...

  3. iOS图形处理和性能

    转自陶丰平的博客   原文的题目是Designing for iOS: Graphics & Performance,晚上花了两个不到小时大致翻译了下. ---Begin--- 在之前的文章里 ...

  4. HDU 5752 Sqrt Bo (数论)

    Sqrt Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 Description Let's define the function f ...

  5. 自定义控件和XControl控件

    (1)LabVIEW的自定义控件,实际上就是对LabVIEW自带的控件的一种修改,但是这种修改只能改变它的外观,即大小.颜色.位置等等,但是功能是改变不了的.如你对一个按钮进行自定义控件,无论怎么改, ...

  6. sql server 2014内存表

    内存数据库,指的是将数据库的数据放在内存中直接操作.相对于存放在磁盘上,内存的数据读写速度要高出很多,故可以提高应用的性能.微软的SQL Server 2014已于2014年4月1日正式发布,SQL ...

  7. [iOS 多线程 & 网络 - 4.0] - AFN框架简单使用

    A.AFN基本知识 1.概念 AFNetworking 是对NSURLConnection的封装 运行效率没有ASI高(因为ASI基于CFNetwork),但是使用简单 AFN支持ARC     B. ...

  8. Chrome的Postman的使用

    Chrome提供了一个很好的Web App 名为 Postman 使用这个web app,你可以输入一个url,然后可以很清楚的看到返回的各种结果 直接在Google中输入Postman, 找到它   ...

  9. 【Java】C/C++与Java的简单比较

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827273.html     C/C++:            编译(不同的系统编译出不同的机器码,所以同一 ...

  10. 如何在Visual Studio中选择C++和C#的编译器版本

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Visual Studio中选择C++和C#的编译器版本.