Click here to Skip to main content
15,883,901 members
Articles / Mobile Apps
Article

A Gradient Button for Windows Mobile

Rate me:
Please Sign up or sign in to vote.
3.22/5 (9 votes)
5 Jul 2008CPOL 41.7K   471   27   5
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.

C#
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:

C#
[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)


Written By
Team Leader
Singapore Singapore
- 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

Comments and Discussions

 
General"How Do I?" Videos for Devices Pin
Yves4-Aug-10 4:09
Yves4-Aug-10 4:09 
QuestionHow to apply a image to a button C#.net 2008 SmartDevice Applications Pin
Chanuri8-Jan-09 0:27
Chanuri8-Jan-09 0:27 
AnswerRe: How to apply a image to a button C#.net 2008 SmartDevice Applications Pin
Dr.Luiji8-Jan-09 3:36
professionalDr.Luiji8-Jan-09 3:36 
GeneralThanks Pin
Joel Ivory Johnson2-Sep-08 12:26
professionalJoel Ivory Johnson2-Sep-08 12:26 
GeneralRe: Thanks Pin
Ravenet10-Sep-08 16:36
Ravenet10-Sep-08 16:36 

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

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