Click here to Skip to main content
Licence CPOL
First Posted 5 Jul 2008
Views 22,587
Downloads 229
Bookmarked 26 times

A Gradient Button for Windows Mobile

By | 5 Jul 2008 | Article
A gradient button for Windows Mobile and the .NET Compact Framework.

Introduction

This is a gradient button for use in Windows Mobile. I had to create a gradient button for use in Windows Mobile with Managed code.

Using the code

I have created the gradient button control by inheriting from Control. Another class I use is the gradient color maker from unmanaged code. For this, I use the "TRIVERTEX" struct. You can get more info about it from: http://msdn.microsoft.com/en-us/library/ms532283(VS.85).aspx.

public struct TRIVERTEX
{
    public int x;
    public int y;
    public ushort Red;
    public ushort Green;
    public ushort Blue;
    public ushort Alpha;
    public TRIVERTEX(int x, int y, Color color)
        : this(x, y, color.R, color.G, color.B, color.A)
    {
    }
    public TRIVERTEX(
        int x, int y,
        ushort red, ushort green, ushort blue,
        ushort alpha)
    {
        this.x = x;
        this.y = y;
        this.Red = (ushort)(red << 8);
        this.Green = (ushort)(green << 8);
        this.Blue = (ushort)(blue << 8);
        this.Alpha = (ushort)(alpha << 8);
    }
}
public struct GRADIENT_RECT
{
    public uint UpperLeft;
    public uint LowerRight;
    public GRADIENT_RECT(uint ul, uint lr)
    {
        this.UpperLeft = ul;
        this.LowerRight = lr;
    }
}

I have also used an unmanaged function for making gradient colors for drawing the button:

[DllImport("coredll.dll", SetLastError = true, EntryPoint = "GradientFill")]
public extern static bool GradientFill(
IntPtr hdc,
TRIVERTEX[] pVertex,
uint dwNumVertex,
GRADIENT_RECT[] pMesh,
uint dwNumMesh,
uint dwMode);

The above method is the key for gradients in Windows. Visti this link for more info: http://msdn.microsoft.com/en-us/library/ms229655(VS.80).aspx.

History

  • First version: 05/07/2008.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Ravenet

Software Developer

Singapore Singapore

Member

- B.Sc. degree in Computer Science.
- 4+ years experience in Visual C#.net and VB.net
- Obsessed in OOP style design and programming.
- Designing and developing Network security tools.
- Designing and developing a client/server application for sharing files among users in a way other than FTP protocol.
- Designing and implementing GSM gateway applications and bulk messaging.
- Windows Mobile and Symbian Programming
- Having knowledge with ERP solutions
 
The summary of my skills:
C#, VB.Net#,ASP.net, VC++, Java, WPF,WCF, Oracle, SQL Server, MS Access, Windows NT administration
 
Cheers
RRave
MCPD,MCTS
http://codegain.com

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
General"How Do I?" Videos for Devices PinmemberYves4:09 4 Aug '10  
QuestionHow to apply a image to a button C#.net 2008 SmartDevice Applications PinmemberChanuri0:27 8 Jan '09  
AnswerRe: How to apply a image to a button C#.net 2008 SmartDevice Applications PinmemberDr.Luiji3:36 8 Jan '09  
GeneralThanks PinmemberJoel Ivory Johnson12:26 2 Sep '08  
GeneralRe: Thanks PinmemberRavenet16:36 10 Sep '08  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120528.1 | Last Updated 5 Jul 2008
Article Copyright 2008 by Ravenet
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid