Click here to Skip to main content
Click here to Skip to main content
Go to top

A Gradient Button for Windows Mobile

, 5 Jul 2008
Rate this:
Please Sign up or sign in to vote.
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)

Share

About the Author

Ravenet
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 PinmemberYves4-Aug-10 4:09 
QuestionHow to apply a image to a button C#.net 2008 SmartDevice Applications PinmemberChanuri8-Jan-09 0:27 
AnswerRe: How to apply a image to a button C#.net 2008 SmartDevice Applications PinmemberDr.Luiji8-Jan-09 3:36 
GeneralThanks PinmemberJoel Ivory Johnson2-Sep-08 12:26 
GeneralRe: Thanks PinmemberRavenet10-Sep-08 16:36 

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.

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 5 Jul 2008
Article Copyright 2008 by Ravenet
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid