xj qian
2024-07-05 8e35897f73080f930030ef56eb087f2ba28b41c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
#pragma once
 
#include "wobject/xcontrol.hpp"
#include "win32/win.hpp"
 
class xlistbox : public xcontrol
{
public:
    xlistbox() :xcontrol(nullptr) {}
    xlistbox(void* implptr) :xcontrol(implptr) {}
 
    static int GetCount(HWND hWnd)//返回列表项总项数
    {
        int LB_GETCOUNT = 0x018B;
        return SendMessage(hWnd, LB_GETCOUNT, 0, 0);
    }
 
    static int AddItem(HWND hWnd, string str)//追加一个列表项,如果指定了LBS_SORT风格,将重排序,否则追加到最后
    {
        int LB_ADDSTRING = 0x0180;
        return SendMessage(hWnd, LB_ADDSTRING, 0, (LPARAM)str);
    }
 
    static int AddItem(HWND hWnd, string str, int p)//追加一个列表项,如果指定了LBS_SORT风格,将重排序,否则追加到最后
    {
        int LB_ADDSTRING = 0x0180;
        int nIndex = SendMessage(hWnd, LB_ADDSTRING, 0, (LPARAM)str);
        int LB_SETITEMDATA = 0x019A;
        SendMessage(hWnd, LB_SETITEMDATA, nIndex, p);
        return nIndex;
    }
    static int InsertItem(HWND hWnd, int nIndex, string str)//指定位置插入,wParam=-1添加到末尾。如果指定了LBS_SORT风格,则不会重排序,所以LBS_SORT风格下不用。
    {
        int LB_INSERTSTRING = 0x0181;
        return SendMessage(hWnd, LB_INSERTSTRING, nIndex, (LPARAM)str);
    }
 
    static int DeleteItem(HWND hWnd, int nIndex) //删除指定的列表项,lParam is not used
    {
        int LB_DELETESTRING = 0x0182;
        return SendMessage(hWnd, LB_DELETESTRING, nIndex, 0);
    }
 
    static int FindString(HWND hWnd, int nIndex, string str)//从指定开始表项序号开始查找指定项,忽略大小写,wParam=-1从第一项找
    {
        int LB_ERR = -1;
        int LB_FINDSTRING = 0x018F;
        int lResult = SendMessage(hWnd, LB_FINDSTRING, nIndex, (LPARAM)str);
        return lResult;
    }
 
    static int FindStringExact(HWND hWnd, int nIndex, string str)//整个字符串匹配
    {
        int LB_ERR = -1;
        int LB_FINDSTRINGEXACT = 0x01A2;
        int lResult = SendMessage(hWnd, LB_FINDSTRINGEXACT, nIndex, (LPARAM)str);
        return lResult;
    }
 
    static int GetAnchorIndex(HWND hWnd)//返回鼠标最后选中的项的索引
    {
        int LB_GETANCHORINDEX = 0x019D;
        return SendMessage(hWnd, LB_GETANCHORINDEX, 0, 0);
    }
 
    static int GetCaretIndex(HWND hWnd)//返回具有矩形焦点的项的索引
    {
        int LB_GETCARETINDEX = 0x019F;
        return SendMessage(hWnd, LB_GETCARETINDEX, 0, 0);
    }
 
    static int GetCurSel(HWND hWnd)//单选,返回当前被选中项索引
    {
        int LB_GETCURSEL = 0x0188;
        return SendMessage(hWnd, LB_GETCURSEL, 0, 0);
    }
 
    static int GetHorizon(HWND hWnd)//返回列表框可滚动的宽度(像素)
    {
        int LB_GETHORIZONTALEXTENT = 0x0193;
        return SendMessage(hWnd, LB_GETHORIZONTALEXTENT, 0, 0);
    }
 
    static int GetItemData(HWND hWnd, int nIndex)//返回指定列表项的附加数据;不是LBS_HASSTRINGS风格的,内容来自于LB_ADDSTRING或LB_INSERTSTRING消息的lParam参数,否则内容来自于LB_SETITEMDATA消息的lParam
    {
        int LB_GETITEMDATA = 0x0199;
        return SendMessage(hWnd, LB_GETITEMDATA, nIndex, 0);
    }
    static int SetItemData(HWND hWnd, int nIndex, string str)//返回指定列表项的附加数据;不是LBS_HASSTRINGS风格的,内容来自于LB_ADDSTRING或LB_INSERTSTRING消息的lParam参数,否则内容来自于LB_SETITEMDATA消息的lParam
    {
        int LB_SETITEMDATA = 0x019A;
        return SendMessage(hWnd, LB_SETITEMDATA, nIndex, (LPARAM)str);
    }
 
    static int GetItemHeight(HWND hWnd, int nIndex)//返回列表项中某一项的高度(像素);用于LBS_OWNERDRAWVARIABLE风格的,wParam指定的参数
    {
        int LB_GETITEMHEIGHT = 0x01A1;
        return SendMessage(hWnd, LB_GETITEMHEIGHT, nIndex, 0);
    }
    /*static Rect GetItemRect(HWND hWnd,int nIndex)//获得列表项的客户区RECT
    {
          int LB_GETITEMRECT  = 0x0198;
          xrect rect;
          return SendMessage(hWnd,LB_GETITEMRECT,nIndex,rect);
    }*/
    static int GetSel(HWND hWnd, int nIndex)//返回指定列表项的状态,如果查询的列表项被选择了返回一个正值,否则返回0
    {
        int LB_GETSEL = 0x0187;
        return SendMessage(hWnd, LB_GETSEL, nIndex, 0);
    }
    static int GetSelCount(HWND hWnd)//返回选择项的数目,仅用于多重选择列表框
    {
        int LB_GETSELCOUNT = 0x0190;
        return SendMessage(hWnd, LB_GETSELCOUNT, 0, 0);
    }
    static int GetSelItems(HWND hWnd)//获取选中项的数目和位置,仅用于多重选择列表框。wParam说明数组缓冲区的大小,lParam指向一个整型数组缓冲区
    {
        int LB_GETSELITEMS = 0x0191;
        int nMax = GetSelCount(hWnd);
        int nItems;
        return SendMessage(hWnd, LB_GETSELITEMS, nMax, nItems);
    }
 
    static string GetText(HWND hWnd, int nIndex) //返回文本
    {
        int LB_GETTEXT = 0x0189;
        int LB_GETTEXTLEN = 0x018A;
        int nLen = SendMessage(hWnd, LB_GETTEXTLEN, nIndex, 0);
        string str = new wchar_t[nLen + 1];
        SendMessage(hWnd, LB_GETTEXT, nIndex, (LPARAM)str);
        return str;
    }
    static int GetTextLen(HWND hWnd, int nIndex) //返回当前选中项文本长度
    {
        int LB_GETTEXTLEN = 0x018A;
        return SendMessage(hWnd, LB_GETTEXTLEN, nIndex, 0);
    }
    static int GetTopIndex(HWND hWnd) //第一个可见项的索引
    {
        int LB_GETTOPINDEX = 0x018E;
        return SendMessage(hWnd, LB_GETTOPINDEX, 0, 0);
    }
    static int ResetCount(HWND hWnd)//清除所以列表项
    {
        int LB_RESETCONTENT = 0x0184;
        return SendMessage(hWnd, LB_RESETCONTENT, 0, 0);
    }
    static int SelectString(HWND hWnd, int nIndex, string str) //选中从nIndex开始第一个str,返回选中的Index,只用在单选列表框中
    {
        int LB_SELECTSTRING = 0x018C;
        return SendMessage(hWnd, LB_SELECTSTRING, nIndex, (LPARAM)str);
    }
 
    static int SelItemRangeEx(HWND hWnd, int sIndex, int eIndex)//仅用于多重选择,从起点-终点
    {
        int LB_SELITEMRANGEEX = 0x0183;
        return SendMessage(hWnd, LB_SELITEMRANGEEX, sIndex, eIndex);
    }
    static int SetAnchorIndex(HWND hWnd, int nIndex)//设置鼠标最后选中的表项成指定表项
    {
        int LB_SETANCHORINDEX = 0x019C;
        return SendMessage(hWnd, LB_SETANCHORINDEX, nIndex, 0);
    }
    /*static int SetCarerIndex(HWND hWnd,int nIndex,bool lParam)//设置键盘输入焦点到指定表项
    {
        int LB_SETCARETINDEX = 0x019E;
        return SendMessage(hWnd,LB_SETCARETINDEX,nIndex,lParam);
    }*/
    static int SetColumnWidth(HWND hWnd, int nWidth)//设置多列列表框宽度,style为多列列表框时有效
    {
        int LB_SETCOLUMNWIDTH = 0x0195;
        SendMessage(hWnd, LB_SETCOLUMNWIDTH, nWidth, 0);
        return 1;
    }
    static int SetCount(HWND hWnd, int nCnt)//设置表项数目
    {
        int LB_SETCOUNT = 0x01A7;
        SendMessage(hWnd, LB_SETCOUNT, nCnt, 0);
        return 1;
    }
    static int SetCurSel(HWND hWnd, int nIndex)//设置指定列表项为当前选择项
    {
        int LB_SETCURSEL = 0x0186;
        return SendMessage(hWnd, LB_SETCURSEL, nIndex, 0);//只用在单选列表框中。nIndex = -1为全不选
    }
    /*static int SetSel(HWND hWnd, bool lbSel,int nIndex)//使指定的列表项选中或不选,用于多选中
    {
          int LB_SETSEL  = 0x0185;
          return SendMessage(hWnd,LB_SETSEL,lbSel,nIndex);//用在多选中,wParm表示是否选,lParam为-1,选择所有
    }
 
    static bool SetTopIndex(HWND hWnd,int nIndex)//将指定的列表项设置为第一个可见项
    {
         int LB_SETTOPINDEX  = 0x0197;
         return SendMessage(hWnd,LB_SETTOPINDEX,nIndex,0);
    }*/
 
    int GetCount()//返回列表项总项数
    {
        return GetCount(GetHWND());
    }
 
    int AddItem(string str)//追加一个列表项,如果指定了LBS_SORT风格,将重排序,否则追加到最后
    {
        return AddItem(GetHWND(), str);
    }
 
    int AddItem(string str, int p)//追加一个列表项,如果指定了LBS_SORT风格,将重排序,否则追加到最后
    {
        return AddItem(GetHWND(), str, p);
    }
 
    int InsertItem(int nIndex, string str)//指定位置插入,wParam=-1添加到末尾。如果指定了LBS_SORT风格,则不会重排序,所以LBS_SORT风格下不用。
    {
        return InsertItem(GetHWND(), nIndex, str);
    }
 
    int DeleteItem(int nIndex) //删除指定的列表项,lParam is not used
    {
        return DeleteItem(GetHWND(), nIndex);
    }
 
    int FindString(int nIndex, string str)//从指定开始表项序号开始查找指定项,忽略大小写,wParam=-1从第一项找
    {
        return FindString(GetHWND(), nIndex, str);
    }
 
    int FindStringExact(int nIndex, string str)//整个字符串匹配
    {
        return  FindStringExact(GetHWND(), nIndex, str);
    }
 
    int GetAnchorIndex()//返回鼠标最后选中的项的索引
    {
        return GetAnchorIndex(GetHWND());
    }
 
    int GetCaretIndex()//返回具有矩形焦点的项的索引
    {
        return GetCaretIndex(GetHWND());
    }
 
    int GetCurSel()//单选,返回当前被选中项索引
    {
        return GetCurSel(GetHWND());
    }
 
    int GetHorizon()//返回列表框可滚动的宽度(像素)
    {
        return GetHorizon(GetHWND());
    }
 
    int GetItemData(int nIndex)//返回指定列表项的附加数据;不是LBS_HASSTRINGS风格的,内容来自于LB_ADDSTRING或LB_INSERTSTRING消息的lParam参数,否则内容来自于LB_SETITEMDATA消息的lParam
    {
        return GetItemData(GetHWND(),nIndex);
    }
 
    int SetItemData(int nIndex, int str)//返回指定列表项的附加数据;不是LBS_HASSTRINGS风格的,内容来自于LB_ADDSTRING或LB_INSERTSTRING消息的lParam参数,否则内容来自于LB_SETITEMDATA消息的lParam
    {
        return SetItemData(GetHWND(), nIndex, str);
    }
 
    int GetItemHeight(int nIndex)//返回列表项中某一项的高度(像素);用于LBS_OWNERDRAWVARIABLE风格的,wParam指定的参数
    {
        return GetItemHeight(GetHWND(), nIndex);
    }
 
    /*Rect GetItemRect(int nIndex)//获得列表项的客户区RECT
    {
          GetItemRect(GetID(),nIndex);
    }*/
 
    int GetSel(int nIndex)//返回指定列表项的状态,如果查询的列表项被选择了返回一个正值,否则返回0
    {
        return GetSel(GetHWND(), nIndex);
    }
 
    int GetSelCount()//返回选择项的数目,仅用于多重选择列表框
    {
        return GetSelCount(GetHWND());
    }
 
    int GetSelItems()//获取选中项的数目和位置,仅用于多重选择列表框。wParam说明数组缓冲区的大小,lParam指向一个整型数组缓冲区
    {
        return GetSelItems(GetHWND());
    }
 
    string GetText(int nIndex) //返回文本
    {
        return GetText(GetHWND(), nIndex);
    }
 
    int GetTextLen(int nIndex) //返回当前选中项文本长度
    {
        GetTextLen(GetHWND(), nIndex);
    }
    int GetTopIndex() //第一个可见项的索引
    {
        return GetTopIndex(GetHWND());
    }
    int ResetCount()//清除所以列表项
    {
        return ResetCount(GetHWND());
    }
    int SelectString(int nIndex, string str) //选中从nIndex开始第一个str,返回选中的Index,只用在单选列表框中
    {
        return SelectString(GetHWND(), nIndex, str);
    }
 
    int SelItemRangeEx(int sIndex, int eIndex)//仅用于多重选择,从起点-终点
    {
        return SelItemRangeEx(GetHWND(), sIndex, eIndex);
    }
    int SetAnchorIndex(int nIndex)//设置鼠标最后选中的表项成指定表项
    {
        return SetAnchorIndex(GetHWND(), nIndex);
    }
    /*int SetCarerIndex(int nIndex,bool lParam)//设置键盘输入焦点到指定表项
    {
        return SetCarerIndex(GetHWND(),nIndex,lParam);
    }*/
    int SetColumnWidth(int nWidth)//设置多列列表框宽度,style为多列列表框时有效
    {
        return  SetColumnWidth(GetHWND(), nWidth);
    }
    int SetCount(int nCnt)//设置表项数目
    {
        return SetCount(GetHWND(), nCnt);
    }
    int SetCurSel(int nIndex)//设置指定列表项为当前选择项
    {
        return SetCurSel(GetHWND(), nIndex);
    }
    /*int SetSel( bool lbSel,int nIndex)//使指定的列表项选中或不选,用于多选中
    {
         return SetSel(lbSel, nIndex);
    }
 
    static bool SetTopIndex(int nIndex)//将指定的列表项设置为第一个可见项
    {
        return SetTopIndex(nIndex);
    }*/
 
    static int GetCount(HWND hWnd)//返回列表项总项数
    {
        int LB_GETCOUNT = 0x018B;
        return SendMessage(hWnd, LB_GETCOUNT, 0, 0);
    }
 
    static int AddItem(HWND hWnd, string str)//追加一个列表项,如果指定了LBS_SORT风格,将重排序,否则追加到最后
    {
        int LB_ADDSTRING = 0x0180;
        return SendMessage(hWnd, LB_ADDSTRING, 0, (LPARAM)str);
    }
 
    static int AddItem(HWND hWnd, string str, int p)//追加一个列表项,如果指定了LBS_SORT风格,将重排序,否则追加到最后
    {
        int LB_ADDSTRING = 0x0180;
        int nIndex = SendMessage(hWnd, LB_ADDSTRING, 0, (LPARAM)str);
        int LB_SETITEMDATA = 0x019A;
        SendMessage(hWnd, LB_SETITEMDATA, nIndex, p);
        return nIndex;
    }
    static int InsertItem(HWND hWnd, int nIndex, string str)//指定位置插入,wParam=-1添加到末尾。如果指定了LBS_SORT风格,则不会重排序,所以LBS_SORT风格下不用。
    {
        int LB_INSERTSTRING = 0x0181;
        return SendMessage(hWnd, LB_INSERTSTRING, nIndex, (LPARAM)str);
    }
 
    static int DeleteItem(HWND hWnd, int nIndex) //删除指定的列表项,lParam is not used
    {
        int LB_DELETESTRING = 0x0182;
        return SendMessage(hWnd, LB_DELETESTRING, nIndex, 0);
    }
 
    static int FindString(HWND hWnd, int nIndex, string str)//从指定开始表项序号开始查找指定项,忽略大小写,wParam=-1从第一项找
    {
        int LB_ERR = -1;
        int LB_FINDSTRING = 0x018F;
        int lResult = SendMessage(hWnd, LB_FINDSTRING, nIndex, (LPARAM)str);
        return lResult;
    }
 
    static int FindStringExact(HWND hWnd, int nIndex, string str)//整个字符串匹配
    {
        int LB_ERR = -1;
        int LB_FINDSTRINGEXACT = 0x01A2;
        int lResult = SendMessage(hWnd, LB_FINDSTRINGEXACT, nIndex, (LPARAM)str);
        return lResult;
    }
 
    static int GetAnchorIndex(HWND hWnd)//返回鼠标最后选中的项的索引
    {
        int LB_GETANCHORINDEX = 0x019D;
        return SendMessage(hWnd, LB_GETANCHORINDEX, 0, 0);
    }
 
    static int GetCaretIndex(HWND hWnd)//返回具有矩形焦点的项的索引
    {
        int LB_GETCARETINDEX = 0x019F;
        return SendMessage(hWnd, LB_GETCARETINDEX, 0, 0);
    }
 
    static int GetCurSel(HWND hWnd)//单选,返回当前被选中项索引
    {
        int LB_GETCURSEL = 0x0188;
        return SendMessage(hWnd, LB_GETCURSEL, 0, 0);
    }
 
    static int GetHorizon(HWND hWnd)//返回列表框可滚动的宽度(像素)
    {
        int LB_GETHORIZONTALEXTENT = 0x0193;
        return SendMessage(hWnd, LB_GETHORIZONTALEXTENT, 0, 0);
    }
 
    static int GetItemData(HWND hWnd, int nIndex)//返回指定列表项的附加数据;不是LBS_HASSTRINGS风格的,内容来自于LB_ADDSTRING或LB_INSERTSTRING消息的lParam参数,否则内容来自于LB_SETITEMDATA消息的lParam
    {
        int LB_GETITEMDATA = 0x0199;
        return SendMessage(hWnd, LB_GETITEMDATA, nIndex, 0);
    }
    static int SetItemData(HWND hWnd, int nIndex, int str)//返回指定列表项的附加数据;不是LBS_HASSTRINGS风格的,内容来自于LB_ADDSTRING或LB_INSERTSTRING消息的lParam参数,否则内容来自于LB_SETITEMDATA消息的lParam
    {
        int LB_SETITEMDATA = 0x019A;
        return SendMessage(hWnd, LB_SETITEMDATA, nIndex, str);
    }
 
    static int GetItemHeight(HWND hWnd, int nIndex)//返回列表项中某一项的高度(像素);用于LBS_OWNERDRAWVARIABLE风格的,wParam指定的参数
    {
        int LB_GETITEMHEIGHT = 0x01A1;
        return SendMessage(hWnd, LB_GETITEMHEIGHT, nIndex, 0);
    }
    /*static Rect GetItemRect(HWND hWnd,int nIndex)//获得列表项的客户区RECT
    {
          int LB_GETITEMRECT  = 0x0198;
          xrect rect;
          return SendMessage(hWnd,LB_GETITEMRECT,nIndex,rect);
    }*/
    static int GetSel(HWND hWnd, int nIndex)//返回指定列表项的状态,如果查询的列表项被选择了返回一个正值,否则返回0
    {
        int LB_GETSEL = 0x0187;
        return SendMessage(hWnd, LB_GETSEL, nIndex, 0);
    }
    static int GetSelCount(HWND hWnd)//返回选择项的数目,仅用于多重选择列表框
    {
        int LB_GETSELCOUNT = 0x0190;
        return SendMessage(hWnd, LB_GETSELCOUNT, 0, 0);
    }
    static int GetSelItems(HWND hWnd)//获取选中项的数目和位置,仅用于多重选择列表框。wParam说明数组缓冲区的大小,lParam指向一个整型数组缓冲区
    {
        int LB_GETSELITEMS = 0x0191;
        int nMax = GetSelCount(hWnd);
        int nItems;
        return SendMessage(hWnd, LB_GETSELITEMS, nMax, nItems);
    }
 
    static string GetText(HWND hWnd, int nIndex) //返回文本
    {
        int LB_GETTEXT = 0x0189;
        int LB_GETTEXTLEN = 0x018A;
        int nLen = SendMessage(hWnd, LB_GETTEXTLEN, nIndex, 0);
        string str = new wchar_t[nLen + 1];
        SendMessage(hWnd, LB_GETTEXT, nIndex, (LPARAM)str);
        return str;
    }
    static int GetTextLen(HWND hWnd, int nIndex) //返回当前选中项文本长度
    {
        int LB_GETTEXTLEN = 0x018A;
        return SendMessage(hWnd, LB_GETTEXTLEN, nIndex, 0);
    }
    static int GetTopIndex(HWND hWnd) //第一个可见项的索引
    {
        int LB_GETTOPINDEX = 0x018E;
        return SendMessage(hWnd, LB_GETTOPINDEX, 0, 0);
    }
    static int ResetCount(HWND hWnd)//清除所以列表项
    {
        int LB_RESETCONTENT = 0x0184;
        return SendMessage(hWnd, LB_RESETCONTENT, 0, 0);
    }
    static int SelectString(HWND hWnd, int nIndex, string str) //选中从nIndex开始第一个str,返回选中的Index,只用在单选列表框中
    {
        int LB_SELECTSTRING = 0x018C;
        return SendMessage(hWnd, LB_SELECTSTRING, nIndex, (LPARAM)str);
    }
 
    static int SelItemRangeEx(HWND hWnd, int sIndex, int eIndex)//仅用于多重选择,从起点-终点
    {
        int LB_SELITEMRANGEEX = 0x0183;
        return SendMessage(hWnd, LB_SELITEMRANGEEX, sIndex, eIndex);
    }
    static int SetAnchorIndex(HWND hWnd, int nIndex)//设置鼠标最后选中的表项成指定表项
    {
        int LB_SETANCHORINDEX = 0x019C;
        return SendMessage(hWnd, LB_SETANCHORINDEX, nIndex, 0);
    }
    /*static int SetCarerIndex(HWND hWnd,int nIndex,bool lParam)//设置键盘输入焦点到指定表项
    {
        int LB_SETCARETINDEX = 0x019E;
        return SendMessage(hWnd,LB_SETCARETINDEX,nIndex,lParam);
    }*/
    static int SetColumnWidth(HWND hWnd, int nWidth)//设置多列列表框宽度,style为多列列表框时有效
    {
        int LB_SETCOLUMNWIDTH = 0x0195;
        SendMessage(hWnd, LB_SETCOLUMNWIDTH, nWidth, 0);
        return 1;
    }
    static int SetCount(HWND hWnd, int nCnt)//设置表项数目
    {
        int LB_SETCOUNT = 0x01A7;
        SendMessage(hWnd, LB_SETCOUNT, nCnt, 0);
        return 1;
    }
    static int SetCurSel(HWND hWnd, int nIndex)//设置指定列表项为当前选择项
    {
        int LB_SETCURSEL = 0x0186;
        return SendMessage(hWnd, LB_SETCURSEL, nIndex, 0);//只用在单选列表框中。nIndex = -1为全不选
    }
    /*static int SetSel(HWND hWnd, bool lbSel,int nIndex)//使指定的列表项选中或不选,用于多选中
    {
          int LB_SETSEL  = 0x0185;
          return SendMessage(hWnd,LB_SETSEL,lbSel,nIndex);//用在多选中,wParm表示是否选,lParam为-1,选择所有
    }
 
    static bool SetTopIndex(HWND hWnd,int nIndex)//将指定的列表项设置为第一个可见项
    {
         int LB_SETTOPINDEX  = 0x0197;
         return SendMessage(hWnd,LB_SETTOPINDEX,nIndex,0);
    }*/
};