yike

yike

1个粉丝

109

问答

0

专栏

45

资料

yike  发布于  2010-01-28 10:14:01
采纳率 0%
109个问答
1829

Windows Mobile实现自绘多种状态按钮(Win32)

 
前段时间涉及到实现自绘多种状态按钮问题,目前解决办法有两个:一个是使用ImageList_Draw方法,另一个是使用DRAWITEMSTRUCT结构体。不知道各位看官有什么好的建议?
第一种方法Windows Mobile 6.0 SDK自带的Samples里面的Crossword就有,代码简单标记下:
//创建一个自绘按钮:   
CreateWindow(_T("Button"), _T(""),
        WS_VISIBLE | WS_CHILD | BS_OWNERDRAW,
        183, 4, 50, 20,
        hWnd, (HMENU)IDC_MAIN_ENTER_BUTTON, g_hInst, 0);
//载入一个绘有按钮不同状态的位图,这里表示了按钮的两种状态:Up和Down。
g_hImageList = ImageList_LoadImage(
        g_hInst,
        MAKEINTRESOURCE(IDB_ENTERBTN),
        46,
        0,
        CLR_NONE,
        IMAGE_BITMAP,
        0);
//DrawEdge实现按钮的阴影。红色即是选择要绘制的图像的索引,0表示第一个。(The zero-based index of the image to draw.)
LPDRAWITEMSTRUCT lpDis = (LPDRAWITEMSTRUCT)lParam;
DrawEdge(lpDis->hDC, &lpDis->rcItem,
     (lpDis->itemState & ODS_SELECTED) ? EDGE_SUNKEN : EDGE_RAISED,
     BF_RECT);
ImageList_Draw(g_hImageList,
     (lpDis->itemState & ODS_SELECTED) ? 0 : 1,
     lpDis->hDC, 2, 2, ILD_NORMAL);
第二种方法绘制多个按钮时更好点,等我把两种方法比较一下再写上来。
转至[url]http://www.cnblogs.com/wangkewei/archive/2009/02/24/1397490.html[/url]
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区