龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

WIN32用户界面设计基础之ListBox 篇

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
一、 简单列表框的设计 1、 使用结构存放批量数据 typedef struct { TCHAR name[25]; BOOL gender; UINT age; TCHAR country[25]; TCHAR email[25]; }Contactors 定义结构体 Contactors myCon[]={ {"SINOASTEROID",TRUE,22,"CHINA"

  一、 简单列表框的设计

  1、 使用结构存放批量数据

typedef struct
{
TCHAR name[25];
BOOL gender;
UINT age;
TCHAR country[25];
TCHAR email[25];
}Contactors
定义结构体
Contactors myCon[]={
{"SINOASTEROID",TRUE,22,"CHINA","sinoasteroid@sina.com"},
{"SMITH",TRUE,21,"AMERICA","smith@gsoft.com"},
{"ROSE",FALSE,20,"GERMEN","rose@psoftware.com"},
{"LICHADE",TRUE,21,"KOREA","lich@korea.com"},
}

  定义并初始化机构体数组

  2、 在对话框的WM_INITIAL消息中向LISTBOX添加项目

for(I=0;I<3;I++)
{
SendMessage(hlist,LB_ADDSTRING,0,(LPARAM)myCon[I].name;
)
file://使用LISTBOX无法正确显示,改用COMBOBOX,指定其Owner Draw 为None

  3、 捕获控件发往父窗口的通知消息

switch(LOWORD(wParam))
case IDC_LIST1:
{switch(HIWORD(wParam))
case LBN_SELCHANGE:
nItem=SendMessage(hlist,LB_GETCURSEL,0,0);

  LB_GETCURSEL得到列表框中当前选定的项目的以0为基准的索引值,如果没有选定值,返回LB_ERR,WPARAM和LPARAM均为0
I=SendMessage(hlist,LB_GETITEMDATA,nItem,0);

  对于自绘制的没有指定LBS_HANSTRING风格LISTBOX,LB_GETITEMDATA返回的值为在LB_ADDSTRING或LB_INSERTSTRING中的LPARAM参数,否则为LB_SETITEMDATA的LPARAM参数

精彩图集

赞助商链接