WEB开发网
开发学院手机开发Windows Mobile 开发 Windows Mobile 使用GDI实现BUTTON效果 阅读

Windows Mobile 使用GDI实现BUTTON效果

 2010-08-23 05:19:00 来源:WEB开发网   
核心提示:当我们开发WM程序的时候,BUTTON控件用得比较多,Windows Mobile 使用GDI实现BUTTON效果,通常用BUTTON控件捕捉用户点击的消息,在这里我们可以使用GDI方式实现类似BUTTON控件的功能

当我们开发WM程序的时候,BUTTON控件用得比较多,通常用BUTTON控件捕捉用户点击的消息,在这里我们可以使用GDI方式实现类似BUTTON控件的功能。

实现思路( 伪代码):

1. 建立两个文件: MyButton.h MyButton.cpp

2. 在MyButton.h 中声明几个变量

// 外部接口:

public:

void AddButton(CString sDownImage, Cstring sUpImage); // 设置一个BUTTON按下前后的图片路径

void SetButtonRect(CRect rc); // 设置该BUTTON的位置以及大小

int OnClick(IN HWND hwnd, IN CPoint pt); // 返回选*能菜单

// 内部函数:

protected:

CRect rc[10] // 这里假设定义的是10个button, 分别用来记录每个button的位置。

HBITMAP hDownBitmap[10] // 定义按下时图片

HBITMAP hUpBitmap[10] // 定义松开时图片

void InitButtonImage(HWND hWnd); // 初始化图标

void SetDownButtonImage(HWND hWnd, int nPreSel); // 声明按下图标方法

void SetUpButtonImage(HWND hWnd, int nSel); // 声明松开图标方法

protected:

int m_nCurrentCount; // 当前BUTTON数目

protected:

int m_nCurrentSel; // 当前选中图标的索引

int m_nPreSel; // 上一级选中图标索引

3. MyButton.cpp 实现

MyButton::MyButton()

{

m_nCurrentCount = 0;

// 初始化

for(int n = 0; n < 10; n ++)

{

hDownBitmap[n] = NULL;

hUpBitmap[n] = NULL;

}

}

void MyButton::AddButton(CString sDownImage, CString sUpImage)

{

hDownBitmap[m_nCurrentCount] = SHLoadImageFile(sDownImage);

// 这里应该加个断言防止加载失败

ASSERT(NULL != hDownBitmap[m_nCurrentCount]);

hUpBitmap[m_nCurrentCount] = SHLoadImageFile(sUpImage);

// 这里应该加个断言防止加载失败

ASSERT(NULL != hUpBitmap[m_nCurrentCount]);

m_nCurrentCount ++;

}

void MyButton::SetButtonRect(CRect rc)

1 2 3  下一页

Tags:Windows Mobile 使用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接