下载本文示例代码
一、 简单列表框的设计 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均为0I=SendMessage(hlist,LB_GETITEMDATA,nItem,0); 对于自绘制的没有指定LBS_HANSTRING风格LISTBOX,LB_GETITEMDATA返回的值为在LB_ADDSTRING或LB_INSERTSTRING中的LPARAM参数,否则为LB_SETITEMDATA的LPARAM参数 4、 将int、double类型变量转换成字符串
TCHAR tempbuffer;_itoa(myCon[I].age,tempbuffer,10); 整数转换成字符串,存入缓冲区tempbuffer,10为基数,如果要得到以16进制字符串表示,换10为16即可,也可以换为2 _gcvt(myCon[I].adouble, 3, tempbuffer); 浮点数转换成字符串,3为输出的位数 二、 用LISTBOX显示文件列表 1、 使用字符缓冲区存放当前目录
TCHAR pathBuffer[256];//缓冲区应当足够大DWORD lenofPath;//存放字符串的长度定义为WORD、int仍正常运行GetCurrentDirectory(256,pathBuffer);//将当前路径存入缓冲区pathBufferlenofPath=strlen(pathBuffer);//获得字符串的长度pathBufer[lenofPath]=0;//截断字符串 2、 在WM_INITDIALOG消息中填充列表框
DlgDirList(hDlg,//对话框句柄pathBuffer,路径IDC_LIST,//列表框IDS_PATH,//显示路径的静态控件DDL_DIRECTORY//除普通文件外还显示目录,如果此参数为0,只显示普通文件,还可以是DDL_READONLY、DDL_HIDE); 3、 用户双击,显示选定的字符串并删除
DWORD nItem;TCHAR lpText[256];case WM_COMMAND:{switch LOWORD(wParam)case IDL_FILELIST:{switch HIWORD(wParam)case LBN_DBLCLK:nItem=SendMessage(hList,LB_GETCURSET,0,0);SendMessage(hList,LB_GETTEXT,nItem,lpText);SendMessage(hList,LB_DELETESTRING,nItem,0);break;}break;}共2页。 1 2 :
一、 简单列表框的设计 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均为0I=SendMessage(hlist,LB_GETITEMDATA,nItem,0); 对于自绘制的没有指定LBS_HANSTRING风格LISTBOX,LB_GETITEMDATA返回的值为在LB_ADDSTRING或LB_INSERTSTRING中的LPARAM参数,否则为LB_SETITEMDATA的LPARAM参数 4、 将int、double类型变量转换成字符串
TCHAR tempbuffer;_itoa(myCon[I].age,tempbuffer,10); 整数转换成字符串,存入缓冲区tempbuffer,10为基数,如果要得到以16进制字符串表示,换10为16即可,也可以换为2 _gcvt(myCon[I].adouble, 3, tempbuffer); 浮点数转换成字符串,3为输出的位数 二、 用LISTBOX显示文件列表 1、 使用字符缓冲区存放当前目录
TCHAR pathBuffer[256];//缓冲区应当足够大DWORD lenofPath;//存放字符串的长度定义为WORD、int仍正常运行GetCurrentDirectory(256,pathBuffer);//将当前路径存入缓冲区pathBufferlenofPath=strlen(pathBuffer);//获得字符串的长度pathBufer[lenofPath]=0;//截断字符串 2、 在WM_INITDIALOG消息中填充列表框
DlgDirList(hDlg,//对话框句柄pathBuffer,路径IDC_LIST,//列表框IDS_PATH,//显示路径的静态控件DDL_DIRECTORY//除普通文件外还显示目录,如果此参数为0,只显示普通文件,还可以是DDL_READONLY、DDL_HIDE); 3、 用户双击,显示选定的字符串并删除
DWORD nItem;TCHAR lpText[256];case WM_COMMAND:{switch LOWORD(wParam)case IDL_FILELIST:{switch HIWORD(wParam)case LBN_DBLCLK:nItem=SendMessage(hList,LB_GETCURSET,0,0);SendMessage(hList,LB_GETTEXT,nItem,lpText);SendMessage(hList,LB_DELETESTRING,nItem,0);break;}break;}共2页。 1 2 :
下载本文示例代码
WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇WIN32用户界面设计基础之ListBox 篇