你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【安富莱STemWin教程】第47章 LISTBOX-列表框控件

[复制链接]
baiyongbin2009 发布时间:2015-3-6 11:32
特别说明:完整STemWin的1-60期教程和配套实例下载地址:链接' c$ T! J1 _3 g6 @  u9 l- A
第47章 LISTBOX-列表框控件
$ q" ]! K# W- b; E' {% e
    本期教程讲解STemWin支持的列表框控件。
    47. 1 列表框控件介绍
    47. 2 官方WIDGET_ListBox实例
    47. 3 对话框上使用列表控件
    47. 4 总结
47.1 列表框控件介绍
    列表框用于选择列表的一个元素。创建的列表框可以没有环绕的框架窗口,如下所示,或者作为FRAMEWIN控件的子窗口建立。列表框中的项目被选定后,会突出显示。注意,所选项目的背景色取决于列表框窗口是否有输入焦点。
47.1.png
47.1.1 列表框支持的通知代码
    以下事件是列表框控件作为WM_NOTIFY_PARENT消息的一部分发送给其父窗口的:
消息
描述
WM_NOTIFICATION_CLICKED
列表框已被点击。
WM_NOTIFICATION_RELEASED
列表框已被释放。
WM_NOTIFICATION_MOVED_OUT
列表框已被点击,且指针已从列表框处移开,没有释放。
WM_NOTIFICATION_SCROLL_CHANGED
可选滚动条的滚动位置已更改。
WM_NOTIFICATION_SEL_CHANGED
列表框的选择内容已更改。
47.2 官方WIDGET_ListBox实例
    官方的这个实例很好的演示了LISTBOX的使用,这个例子在模拟器中的位置:
47.2.png
源码如下(程序中进行了详细的注释):
  1. ----------------------------------------------------------------------
    4 ~4 Y# J+ b5 c6 v$ \  Z
  2. File        : WIDGET_ListBox.c. Y7 k5 g3 e" E, G) f
  3. Purpose     : Example demonstrating the LISTBOX widget1 x# a* A& l  P/ s
  4. ----------------------------------------------------------------------' v1 w: C- D' [( y
  5. */$ x' [6 d4 [4 j8 N. q

  6. 4 E+ A9 g6 C4 ^/ B$ a
  7. #include "GUI.h"7 c' L+ i6 u8 }* t/ a( I
  8. #include "FRAMEWIN.h"
    , v9 R' v6 I9 Y7 f6 T
  9. #include "LISTBOX.h"% G* m) V) h" K- @
  10. #include <stddef.h>/ H; l' _$ Q9 W6 r. ~( ]9 K9 y5 i

  11. / f: Q3 m' x, d
  12. #define SPEED 1000
    $ _  J; y5 N4 z% v: }

  13. ' }+ f( l; z$ {1 i: A0 u
  14. /*******************************************************************; w) a1 Y8 E6 Q' n: D
  15. *
    0 Z* V% E2 z0 f# @
  16. *       static variables% o6 T: S3 m" r' ~" ^: A! W5 O) O
  17. *
    ( K  o. ^6 h! x5 o* ^8 W9 _9 N
  18. ********************************************************************/ H% n& d+ L' H0 ~
  19. */  B3 n. \8 R6 [3 u9 d
  20. 6 [' X9 S; _  u* m
  21. static const GUI_ConstString _ListBox[] = {
    ! V0 y8 {$ w0 Z5 ]* P
  22. "English", "Deutsch", NULL% j) ~3 P& b0 Z" u) ^3 l
  23. };
    7 O8 M+ l( v" n, V! f! v
  24. ! J2 h6 x3 n% _1 |: {* J
  25. /*******************************************************************
    8 n; Y2 Y* ~7 X
  26. *$ u, i  k9 M: L! h
  27. *       _ShowSeveralFunctions3 m- p% p2 p# f
  28. */& \1 _. u5 D3 `% w
  29. static void _ShowSeveralFunctions(LISTBOX_Handle hListBox) {  Z' C% q8 `0 b4 w. l" o, ~4 k
  30.   int NumEntries, i;0 Z$ D( B0 r; \, p+ u
  31. - K. E: Q  f6 }+ ~6 f* R, Z
  32.   /* 增加垂直滚动条 */
    / j1 X) Y& [( v" q. B
  33.   GUI_DispStringAtCEOL("SCROLLBAR_CreateAttached", 5, 55);
    - b: A( i  E' k
  34.   GUI_Delay(SPEED);& A  t# W4 ~4 _' i9 e
  35.   SCROLLBAR_CreateAttached(hListBox, SCROLLBAR_CF_VERTICAL);
    8 f7 x; Y- G" L7 {/ }$ o( n/ C9 l
  36.   GUI_Delay(SPEED * 0.75);
    " i7 m* ?( K$ q) \+ y6 J
  37. ( ^8 d" X+ i+ E0 B
  38.   /* 增加字符串 */+ P; w5 k0 E$ c
  39.   GUI_DispStringAtCEOL("LISTBOX_AddString", 5, 55);
    2 D2 X' f3 [( v# J% F3 X2 p+ G
  40.   GUI_Delay(SPEED);' F' j) ~, N7 _+ X5 }; U
  41.   LISTBOX_AddString(hListBox, "Fran鏰is");4 L( t) ^) i/ d" t9 I
  42.   GUI_Delay(SPEED / 6);! w" m6 ^9 o2 U% W- J0 ^  {' p! N+ p
  43.   LISTBOX_AddString(hListBox, "Japanese");
    $ Z3 a. C; O  A; ]5 x/ y2 a/ v) V
  44.   GUI_Delay(SPEED / 6);
    0 B: l% \8 S2 S. Z5 Q. x; R6 s
  45.   LISTBOX_AddString(hListBox, "Italiano");
    / w5 E0 d. n( \# L. f2 h
  46.   GUI_Delay(SPEED / 6);
    $ V* H' k$ v5 \4 f
  47.   LISTBOX_AddString(hListBox, "Espa駉l");; P4 D5 R3 \  ]( J4 Q  M! f
  48.   GUI_Delay(SPEED / 6);
    . T" P$ F4 q7 _( h
  49.   LISTBOX_AddString(hListBox, "Other language ...");$ O7 u+ n4 }( g1 U" z0 _$ t) b
  50.   GUI_Delay(SPEED * 0.6);7 F7 B9 l# r' L
  51. 2 q* j3 o: L$ z8 \4 q' Q
  52.   /* 设置输入焦点 */
    - @# C$ U) l4 ]: X0 N$ \9 \
  53.   GUI_DispStringAtCEOL("WM_SetFocus", 5, 55);
    & p( H( y9 W& ~
  54.   GUI_Delay(SPEED * 0.9);. _4 Q  h" q, u* ]
  55.   WM_SetFocus(hListBox);
    " S! ^  r( O* m; o
  56.   GUI_Delay(SPEED * 0.7);) ^2 h$ r9 q6 F- h" {

  57. 0 l0 t$ H% y: o# s
  58.   /* 设置字体 */- Q4 ^) `! C7 K5 [. g
  59.   GUI_DispStringAtCEOL("LISTBOX_SetFont", 5, 55);3 t4 H' d4 H  Q
  60.   GUI_Delay(SPEED * 0.9);
    3 a1 }. R9 j$ o; Z  L  F/ x0 f
  61.   LISTBOX_SetFont(hListBox, &GUI_Font13B_1);
    9 \. r4 M$ Q! R; |
  62.   GUI_Delay(SPEED * 0.7);
    # c5 k; o, P% c) g) K/ Y. M3 I- ~
  63. : D1 Q* g  a) S! d1 h) S
  64.   /* 增加选项 */" h* n7 n# j* ~4 {+ l! |/ p- r
  65.   GUI_DispStringAtCEOL("LISTBOX_IncSel", 5, 55);
    - T' u, I& ^- E% S# ~) `
  66.   GUI_Delay(SPEED);
    + F' d) g0 T6 S% ]+ b; R. x
  67.   NumEntries = LISTBOX_GetNumItems(hListBox);
    $ k% ^2 [/ s, q* _& c$ H
  68.   for (i = 0; i < NumEntries - 1; i++) {5 }) ?3 l6 }; K' Y' x( F8 ]
  69.     LISTBOX_IncSel(hListBox);
    " Z0 X8 w/ p/ r8 F" W" Q( N
  70.     GUI_Delay(SPEED / 6);$ h& b7 i* }4 ~' S- q
  71. }* A3 G3 d; l% f% r, ]4 v/ F0 i: O9 C
  72.   GUI_Delay(SPEED / 4);
    & q2 K( o4 D+ C; p2 \
  73. " G( |  I: {1 ^& y3 P( p
  74. ! I5 t8 R8 N4 r8 z" @
  75.   /* 自动增加滚动条 */+ Z3 Q: ~) B* e2 z, D! _2 M
  76.   GUI_DispStringAtCEOL("Optional automatic scrollbar", 5, 55);# V  O2 h! }2 d9 b+ d) t) Q" j
  77.   GUI_Delay(SPEED);
    $ A; p1 @$ s  [$ f2 |* R
  78.   LISTBOX_SetAutoScrollH(hListBox, 1);5 }! i9 P5 y" v0 t/ j! n3 v
  79.   LISTBOX_SetAutoScrollV(hListBox, 1);
    , H9 X0 H6 i! j! g
  80.   GUI_Delay(SPEED * 0.75);
    6 P1 W) T2 l- U5 ?

  81. : V/ f+ h7 l2 T* _" n

  82. % W! |+ i! A& J* t' W' [2 P
  83.   /* Set font */, Y8 e. D! J9 Z2 d. r
  84.   /* 设置字体 */4 Z2 ]+ d6 q0 G, Z! b9 q
  85.   GUI_DispStringAtCEOL("LISTBOX_SetFont", 5, 55);+ U! c- \$ Q* V6 @' }: a$ m* ~
  86.   GUI_Delay(SPEED);
    - v" C/ z1 Q4 v6 ?0 L& Q
  87.   LISTBOX_SetFont(hListBox, &GUI_Font16B_1);
    : J0 P/ R. f# g+ ^
  88.   GUI_Delay(SPEED * 0.75);
    # p' c, n2 r6 W* A

  89. & a  [1 w3 [7 N, Y! N7 u& t
  90.   /* 递增选择 */* M5 E' ?% V% l. l$ y2 u
  91.   GUI_DispStringAtCEOL("LISTBOX_DecSel", 5, 55);( k: W0 N5 y' G4 `- z8 r
  92.   GUI_Delay(SPEED);6 q8 |' a6 j& p- S  q5 z
  93.   for (i = 0; i < NumEntries - 1; i++) {
    / l& z6 @4 P! a
  94.     LISTBOX_DecSel(hListBox);( i1 @! |, C( ?% p
  95.     GUI_Delay(SPEED / 6);
    4 K6 M$ X/ I& J
  96. }
    ) M* b, Y" h2 o# n  r
  97.   GUI_Delay(SPEED / 4);
    + t- I; O3 S' P, C3 o! S. l; ]
  98. - s! }4 X- d0 B, N# w- z4 p
  99.   /* 更改滚动条的属性 */
    ! k8 B4 q; |; r' y+ A# z8 D
  100.   GUI_DispStringAtCEOL("Change scrollbar width", 5, 55);
    0 G% P; r' c! y2 X/ [% T
  101.   GUI_Delay(SPEED * 0.7);
    . w- v, t8 `6 o4 H9 N+ [
  102.   {+ E" r3 V' F0 N6 M6 @
  103. /* 得到滚动条的句柄 从而去修改滚动条的属性 */
    , {2 z% I9 i& j% n/ y, [6 E' `
  104.     SCROLLBAR_Handle hScrollH = WM_GetDialogItem(hListBox, GUI_ID_HSCROLL);4 w# J1 O+ v0 b9 v! j8 n
  105.     SCROLLBAR_Handle hScrollV = WM_GetDialogItem(hListBox, GUI_ID_VSCROLL);
    ) E  y" o  B, x" h8 T# u3 ?
  106.     SCROLLBAR_SetWidth(hScrollV, 14);
    " [8 r8 i6 [+ P5 t* N/ |1 _0 e6 T
  107.     GUI_Delay(SPEED / 4);
    4 {% y) @* b# c$ m3 G4 {# _
  108.     SCROLLBAR_SetWidth(hScrollH, 14);
    . J0 B4 J; {% J- w) Q
  109.     GUI_Delay(SPEED * 0.6);7 E2 r& G0 J# v& V
  110.   }
    ( [$ P, l: U6 K& M
  111. 1 [0 M$ e5 M! H4 Z; F) Z) e

  112. 9 C5 ?3 e( ?4 d
  113.   /* 设置列表框的大小 */
    ' ?6 S- ?1 Q5 L1 I& J6 z  {( d
  114.   GUI_DispStringAtCEOL("Change size of listbox", 5, 55);( r0 w5 J: c; f3 j) l7 k
  115.   GUI_Delay(SPEED * 0.75);; ^6 I/ C$ @: y, w+ ^
  116.   WM_ResizeWindow(hListBox, -15, 0);
    8 }! @1 V1 J  R) b" l- Y
  117.   GUI_Delay(SPEED / 4);. s8 I" r2 U0 ^( {
  118.   WM_ResizeWindow(hListBox, 0, -15);
    * |2 j; w9 `# H+ z
  119.   GUI_Delay(SPEED / 4);
    ( `4 k+ t/ H. h( _. s
  120.   WM_ResizeWindow(hListBox, 15, 0);
    0 ]& _) W& ^: U* p
  121.   GUI_Delay(SPEED / 4);
    ( ^2 w# l& u$ {8 k4 A, R
  122.   WM_ResizeWindow(hListBox, 0, 15);, y+ R& P- u" Z% e
  123.   GUI_Delay(SPEED / 2);
    $ f8 g/ `0 h. ~6 Y

  124. 0 I. o: t/ h' t" S. O) e' W

  125. ; K( ]& _, y3 H  i& P. t$ X* e" e
  126.   /* 设置相应的项目禁能 注意0是第一个项目 */  {3 K, k' [5 H6 I; }8 ?
  127.   GUI_DispStringAtCEOL("LISTBOX_SetItemDisabled", 5, 55);- M  _9 P+ U: h- x5 j
  128.   GUI_Delay(SPEED);
    . X2 z1 Q2 g# v
  129.   LISTBOX_SetItemDisabled(hListBox, 4, 1);1 s% G7 c! B2 u, \) I4 e
  130.   GUI_Delay(SPEED * 0.75);
      D( p: s4 ]$ ~$ a8 y
  131. , E# q0 E9 i' b) C9 K/ N# L+ [
  132. 1 M5 @( y3 R) Z
  133.   /* 设置使能多个项目的选择 */& y4 [$ q: `+ T5 i
  134.   GUI_DispStringAtCEOL("LISTBOX_SetMulti", 5, 55);2 m: Q% r. Q4 H
  135.   GUI_Delay(SPEED);
    # `' q$ F6 \7 H, _" v8 ~& N3 q1 m0 x
  136.   LISTBOX_SetMulti(hListBox, 1);0 G9 }. g  L/ N" g' U- a' }
  137.   GUI_Delay(SPEED * 0.75);
    7 P7 w# k% K$ G4 b# b1 w, U

  138. . i2 q6 C5 n& l( [3 z8 s
  139.   /* 选择项目 */
    6 N: s9 s. n$ E$ ?6 V
  140.   GUI_DispStringAtCEOL("LISTBOX_SetItemSel", 5, 55);6 D  O! a% S2 Z4 R) j- H$ k
  141.   GUI_Delay(SPEED);
    + n: i: ]1 y, f  \9 @
  142.   LISTBOX_SetItemSel(hListBox, 0, 1);
    , g. }$ _7 w1 e1 r" e  p9 t
  143.   GUI_Delay(SPEED / 4);
    # j" p! [4 c' g2 w
  144.   LISTBOX_SetItemSel(hListBox, 1, 1);
    8 b1 ^' ]/ G0 E( T% U+ U
  145.   GUI_Delay(SPEED / 4);# s* x* X( Q) b) b) N; \
  146.   LISTBOX_SetItemSel(hListBox, 2, 1);; g+ a# @! y* Z
  147.   GUI_Delay(SPEED * 0.8);
    ) n) ]2 v6 T' X' N/ s6 ?# ?
  148. 3 l4 x9 N; v6 Q' k* ~
  149.   /* 删除列表框 */. p( e1 U/ T* x! z3 {" ]
  150.   GUI_DispStringAtCEOL("LISTBOX_Delete", 5, 55);
      C  a/ @: m" b
  151.   GUI_Delay(SPEED * 1.1);
    + P" Y- ~. S( \* h; F9 h9 ^
  152.   LISTBOX_Delete(hListBox);
    9 c+ K6 {  n; H3 C. ~" J
  153.   GUI_Delay(SPEED * 0.75);
    # b$ d( D; F# x2 J: P
  154. }" w- E6 S& m; k4 Q
  155. 9 T# _: ]! ?6 P' [& a
  156. /*******************************************************************0 E+ K9 }' {) V7 k, s
  157. *
    3 _+ q- `3 V' ]& f( I
  158. *       _DemoListBox
    - ?" c& `( W! T0 c  I/ v
  159. */
    ( c8 w5 s6 N3 b! A( o
  160. static void _DemoListBox(void) {8 D/ \4 p' E1 T4 d" B, U$ [
  161.   LISTBOX_Handle hListBox;
    ' ?( u$ q  i( \5 U
  162. * I: T4 W: g8 A3 D: }) z8 ?5 Y9 N
  163.   /* 显示标题 */: B9 {/ |) `7 J4 ^: \
  164.   GUI_SetBkColor(0xB00000);4 S% g$ z( r8 t0 g: G* w
  165.   GUI_SetColor(0xFFFFFF);
    0 `% \' A- t0 ^8 ?) Q/ u2 S
  166.   GUI_SetFont(&GUI_Font24_ASCII);- Z- \  q" F7 E6 O/ Q0 y7 N
  167.   GUI_DispStringHCenterAt("Listbox - Sample", 160, 5);1 r3 s/ ?, u5 p9 F' V6 X
  168.   GUI_Delay(SPEED / 2);3 l! \- p5 P3 W0 g, E

  169. 4 G# ~- O! G) F1 Q4 @4 L
  170.   /* 创建列表框 */1 |, a5 Z* ^8 N  V/ X2 d% T
  171.   GUI_SetFont(&GUI_Font8x16);0 o# A% }* E! b4 W9 Z
  172.   GUI_SetTextAlign(GUI_TA_LEFT);
    3 r$ M. u0 s: n) G5 d8 {; H8 F
  173.   GUI_DispStringAtCEOL("using", 5, 40);# @4 K: m. H( k5 ^. T) \2 S1 U$ N
  174.   GUI_DispStringAtCEOL("LISTBOX_Create", 5, 55);/ T- x8 H/ e; |
  175.   GUI_Delay(SPEED * 0.9);
    9 O0 k2 _- v+ ^9 b3 K
  176.   hListBox = LISTBOX_Create(_ListBox, 100, 80, 120, 115, WM_CF_SHOW);
    # e3 h4 Q) G3 c1 f* P7 }' U7 Z
  177.   GUI_Delay(SPEED * 0.75);
    8 F6 H4 m7 Z) Z4 W2 C) q
  178. 0 T9 K5 e* @( b0 u9 a
  179.   /* 功能演示 */
    2 W( Z/ z; N( h9 P
  180.   _ShowSeveralFunctions(hListBox);; W) Q9 }! T% G! I5 t# }7 D- _
  181.   /* Clear display */
    % y8 k4 ^: L$ O
  182.   GUI_Clear();
    " u/ H0 W% c/ _+ f
  183.   GUI_Delay(SPEED * 1.5);* E( x0 \0 C. C1 {% y; {5 M/ A
  184. }  y$ M6 Z+ e% C, W
  185. + l$ ]7 ?, Y9 r! S9 ~
  186. /*******************************************************************
    ) U4 j2 p, `: T; l: g* q
  187. *$ u2 u% i9 ^* _' x2 J' \9 s' o
  188. *       _DemoListBoxAsChild
    2 M, ~9 K# P9 U* A  h; [/ e
  189. */! P- l4 H6 V; O/ r/ g
  190. static void _DemoListBoxAsChild(void) {# d4 |. z% u5 [
  191.   FRAMEWIN_Handle hFrame;" n+ u6 B, F: ^$ b- S& X
  192.   LISTBOX_Handle hListBox;
    ) Z( s+ R8 ^6 G6 y# D

  193. 9 I+ W& ~, R4 u2 h* @% M' M
  194.   /* 显示标题 */
    ( }! b8 D$ F; B) n6 ?
  195.   GUI_SetBkColor(0xB00000);
    3 g$ \3 Y/ x! z* u3 m" a8 {
  196.   GUI_SetColor(0xFFFFFF);
    ) m3 p$ }1 o5 U$ e
  197.   GUI_SetFont(&GUI_Font24_ASCII);( u7 j+ E; Z' `* t; J' ]
  198.   GUI_DispStringHCenterAt("Listbox as child - Sample", 160, 5);( W, w4 N) t0 m
  199.   GUI_Delay(SPEED / 2);. o, J4 @; a8 g9 t" B$ i

  200. % b9 Z& A; D, u; Z" G3 W
  201.   /* 创建窗口框架 */
    + ~  x# P+ e) @; e1 l
  202.   GUI_SetFont(&GUI_Font8x16);
    ) l2 L9 N: n! y( M
  203.   GUI_SetTextAlign(GUI_TA_LEFT);( P$ E; s4 M: {# i
  204.   GUI_DispStringAtCEOL("using", 5, 40);
    7 L" Q! \& M; D5 a) c$ N) I* @1 s
  205.   GUI_DispStringAtCEOL("FRAMEWIN_Create", 5, 55);
    1 O& N! ^3 x' ^$ Y) q  u
  206.   GUI_Delay(SPEED);
    2 l0 E$ z' T. b
  207.   hFrame = FRAMEWIN_Create("List box", NULL, WM_CF_SHOW, 100, 80, 120, 140);
    3 U# c& l6 s" R6 o( q0 D$ I6 j5 J
  208.   FRAMEWIN_SetFont(hFrame, &GUI_Font16B_ASCII);
    % I. `/ P+ H# G* ]* b7 w
  209.   FRAMEWIN_SetActive(hFrame, 1);+ A1 ~; Q% o$ K+ z
  210.   GUI_Delay(SPEED * 0.75);: I9 d8 x+ @" T# S: A) R5 T/ a
  211. / t" ], C. C+ g7 b

  212. / c. K! \& S7 \2 W8 _
  213.   /* 创建列表框 */6 X1 e2 w% x3 F
  214.   GUI_DispStringAtCEOL("LISTBOX_CreateAsChild", 5, 55);
    / ?$ C9 Z6 V6 W& r. K, t
  215.   GUI_Delay(SPEED);9 R* r- p- n" a6 \/ x: [! W
  216.   /* 其实坐标0,0,水平和垂直的大小如果设置为0的话,那么将默认为父窗口的用户区大小 */
    ) {. T0 S. o9 |$ H! p. w
  217.   hListBox = LISTBOX_CreateAsChild(_ListBox, WM_GetClientWindow(hFrame), 0, 0, 0, 0, WM_CF_SHOW);
    % H! x; G( B& A$ R! o, f) O
  218.   GUI_Delay(SPEED * 0.75);
    ' q! f$ S  Q2 v* T5 X
  219. 0 r% F9 J, i7 ]6 l2 N' G
  220.   _ShowSeveralFunctions(hListBox);
    8 @% L$ J/ F, `6 b2 O# ?

  221. & f+ P$ @7 n" K( t9 {
  222.   /* 删除框架窗口*/
    1 j! |& z1 o8 p
  223.   GUI_DispStringAtCEOL("FRAMEWIN_Delete", 5, 55);5 N$ y1 L/ Y4 l
  224.   GUI_Delay(SPEED);
    * W& `1 m% M6 k  h1 N: s1 C
  225.   FRAMEWIN_Delete(hFrame);
    0 Y: F) C1 l# }
  226.   GUI_Delay(SPEED * 0.75);5 ^0 X  m/ ]  E; {1 o  l8 A
  227. : b" E! _7 F' }" K% J
  228.   /* 清除显示 */' M. w) r1 i, @6 D0 Z5 z
  229.   GUI_Clear();
    0 A$ V. i! k: \$ S) f: p
  230.   GUI_Delay(SPEED * 1.5);, F  n$ }) a  L2 i  {
  231. }& b( a: Y2 M3 n

  232. , o% B' n4 G9 E% }( Z' |$ y
  233. /*******************************************************************
    & ^) p+ t6 J1 S, n0 l: S
  234. *
    - v4 {, b) y& s! ]8 P
  235. *       MainTask
    3 }, F7 _3 a; `3 ?+ G
  236. *
    . s7 ^. Z/ A& g2 y  h5 l2 V) ~1 @
  237. *       Demonstrates LISTBOX widget
    ; E$ R4 V: H( e- ~: {& @7 `
  238. *4 s1 }/ o) p% u( Z: B0 G8 m" e
  239. ********************************************************************# G6 t1 S; x# ]  I! d
  240. */
    5 \+ \8 t; k/ ^; a# A2 o

  241. + s( |# ^# [- ?  w: d6 t" n- n7 L. `! O
  242. void MainTask(void) {% [" a! ~9 \5 n' b3 m/ ~
  243.   GUI_Init();& {4 i( |. H$ g2 G! m9 K& M
  244.   WM_SetDesktopColor(0xB00000);, H6 [) K0 o3 p: D
  245.   GUI_Exec();
    # J0 T3 g9 f2 v* R$ q6 t
  246.   while(1) {7 F/ r, g5 X) [8 n8 @; z
  247.     _DemoListBox();5 D" [4 Q4 g- z* U
  248.     _DemoListBoxAsChild();
    . G- D% ~  ~; B6 x# _4 H
  249.   }6 c+ I" J8 o7 _6 a
  250. }
复制代码
这个例子的实际现象效果如下:
47.3.png
47.3 对话框上使用列表框控件
    用uCGUIBulder4.0建立如下界面(分辨率480*272):
47.4.png
    为列表框添加成员的方法如下:
47.5.png
    将生成的代码直接复制到模拟器或者开发板上面运行,实际显示效果如下(生成的代码在本期教程配套的例子中):
47.6.png
47.4 总结
     本期教程主要是跟大家讲解了列表框控件的使用,希望大家可以把本期教程中讲的这两个例子跑跑,然后自己设计一个相关的例子进行试验学习。教程中只是使用了部分的列表框控件API,其它的API大家都可以试试。

: I. A) W4 O/ J7 A
赞 收藏 评论2 发布时间:2015-3-6 11:32

举报

2个回答
kqh1120 回答时间:2015-3-6 12:52:45
谢谢分享 1.png
wamcncn 回答时间:2015-3-6 12:59:27
谢谢分享
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版