teky 的 blog
在vck中学习,在vck中进步~
<2006年3月>
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678
公告

留言簿(11)

随笔档案

文章分类

文章档案

相册

Windows Mobile

我的好友

朋友创业,其路漫漫

搜索

最新评论

阅读排行榜

评论排行榜

 
VC知识库BLOG   首页  新随笔  联系  聚合  登录 
  随笔-30 文章-17 评论-94 Trackbacks-4
2006年3月9日


Spin Box controls是从列表中进行选择的控件
Spin Box controls在屏幕空间有限的时候就体现出他的价值了


它左右滚动可以浏览列表中选项,但不需要占用edit以外的屏幕空间
 
所以在Pocket PC 和Smartphone中普遍的采用它取代list boxes 控件


Spin box Controls风格:
 
1.  UDS_WRAP


左右点击的时候,循环显示listbox中项, (到最小的时候显示最大的,到最大值又回到最小值)


2. UDS_EXPANDABLE


点击action的时候, 会变成全屏来显示listbox


3.UDS_SETBUDDYINT


所谓的邦定了,把listbox中选中的值 显示在edit中


4. UDN_EXPANDING


在风格2中,点击action的时候,会 向父窗口发送UDN_EXPANDING NOTIFY
消息,父窗口可以返回TRUE来禁止它展开


 
Spin box Controls 实际上一对控件,他是由一个上下控件 (up/down controls) 和一个单选list box结合而成

标准的list box消息也可以用于这里的list box中

 

创建spin box controls有两中方法:
1 编辑rc资源文件创建:


CONTROL "", IDC_LIST, "listbox", WS_TABSTOP | WS_VISIBLE | LBS_NOINTEGRALHEIGHT, 4,10,93,10
CONTROL "", IDC_UPDOWN, UPDOWN_CLASS, WS_VISIBLE | UDS_AUTOBUDDY | UDS_HORZ | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT | UDS_WRAP | UDS_EXPANDABLE, 0,0,0,0


2 在程序中用CreateWindow 创建

hwndList = CreateWindow(TEXT("listbox"), NULL, WS_VISIBLE | LBS_NOINTEGRALHEIGHT, x, y, cx, cy, hwndParent, (HMENU)nListID, hinst, 0L);
hwndUpDown = CreateWindow(UPDOWN_CLASS, NULL, WS_VISIBLE | UDS_HORZ |UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT | UDS_WRAP | UDS_EXPANDABLE, 0, 0, 0, 0, hwndParent, (HMENU)nUpDownID, hinst, 0L);


SendMessage(hwndUpDown, UDM_SETBUDDY, (WPARAM)hwndList, 0);


SendMessage (hwndList, LB_ADDSTRING,0,(LPARAM)_T(“Item1"));
SendMessage (hwndList, LB_ADDSTRING,0,(LPARAM)_T(" Item2 "));
SendMessage (hwndList, LB_ADDSTRING,0,(LPARAM)_T(" Item3 "));


和spin box controls类似的还有: Expandable Edit Controls


 

 

发表于 2006-03-09 11:00 teky 阅读(2912) | 评论 (3)编辑 收藏