windows编程学习笔记(三)ListBox的使用方法
- LBS_EXTENDEDSEL 用户可以通过SHIFT + 鼠标或者其他组合键进行多选(只能通过SHIFT + 鼠标或者其他组合键)
- LBS_HASSTRINGS 指定一个自绘的列表框中包含有字符串项,这些字符串的指针由应用程序管理,我们可以利用GetText函数得到相应的字符串
- LBS_MULTICOLUMN 列表框可以有多列,默认情况是只有一列即一行只有一个字符串,我们可以使用 SetColumnWidth设置列宽
- LBS_MULTIPLESEL 用户可以同时选择多项(用户单击一项时这项被选中,单击另一项时,这两项都被选中,选择多项时只需要点击不同的项,不需要用组合键的方式,同一项第一次单击时选中,第二次单击时取消选中)
- LBS_NOINTEGRALHEIGHT 列表框的大小由系统在创建这个列表框的时候决定。一般不会只显示部分列表项
- LBS_NOREDRAW 列表框的大小在显示后不会改变,但是可以通过发 WM_SETREDRAW消息来取消这一风格
- LBS_NOTIFY 当用户单击或双击时会发送一条消息到父窗口,风格,父窗口将接收不到用户选择的项
- LBS_OWNERDRAWFIXED 父窗口负责绘制列表框,这个时候列表框中的项的大小都一样
- LBS_OWNERDRAWVARIABLE 列表项的大小可以不一样
- LBS_SORT 字符串会以首字母排序
- LBS_STANDARD 系统会将字符串排序,同时父窗口会收到用户单机或者双击鼠标的消息
- LBS_USETABSTOPS 允许用户使用TAB键在各项中切换
- LBS_WANTKEYBOARDINPUT 当列表框通过键盘获得焦点时会向父窗口发送 WM_VKEYTOITEM 或 WM_CHARTOITEM 消息,以便程序处理特殊的键盘消息
- LBS_DISABLENOSCROLL 列表框会拥有一个垂直滚动条 ,在列表框不能够显示所有项时显示。
struct PERSON
{
const char *pszName;
int nAge;
const char *pszPhoneNum;
};
HWND hList = CreateWindow("LISTBOX", "", WS_CHILD | WS_BORDER | WS_VISIBLE | LBS_HASSTRINGS | LBS_NOTIFY | LBS_NOINTEGRALHEIGHT
, 0,0,200,800,hWnd, (HMENU)123, g_hInst, NULL);
for(int i = 0; i < 3; i++)
{
SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)(g_Person[i].pszName));
}
SendMessage(hList, LB_SETCURSEL, (WPARAM)0, 0);
}
关于列表框的显示与行为控制都在WM_COMMAND中处理:
if (123 == LOWORD(wParam))
{
if (LBN_DBLCLK == HIWORD(wParam))
{
int nIndex = SendMessage((HWND)lParam, LB_GETCURSEL, 0, 0);
sprintf(szBuf, "姓名:%s 年龄:%d 电话:%s", g_Person[nIndex].pszName, g_Person[nIndex].nAge,
g_Person[nIndex].pszPhoneNum);
InvalidateRect(hWnd, NULL, TRUE);
}
}
当点击某一项后需要在窗口中显示,显示的工作可以在WM_PAINT中完成
PAINTSTRUCT ps;
RECT rtClient;
GetClientRect(hWnd, &rtClient);
HDC hDc = BeginPaint(hWnd, &ps);
DrawText(hDc, szBuf, strlen(szBuf), &rtClient, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
EndPaint(hWnd, &ps);
windows编程学习笔记(三)ListBox的使用方法的更多相关文章
- python网络编程学习笔记(三):socket网络服务器(转载)
1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较. 步骤 TCP客户端 TCP服务器 第一步 建立socket对象 建立socket对 ...
- 【Linux_Shell 脚本编程学习笔记三、分支与循环结构】
if 语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固 if 条件语法 1. 单分支机构 if [ 条件 ] then 指令 fi 或 if [ 条件 ]; then 指令 fi ...
- 多线程编程学习笔记——async和await(三)
接上文 多线程编程学习笔记——async和await(一) 接上文 多线程编程学习笔记——async和await(二) 五. 处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...
- 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记
回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...
- kvm虚拟化学习笔记(三)之windows kvm虚拟机安装
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- 多线程编程学习笔记——使用异步IO(一)
接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...
- 【Visual C++】游戏编程学习笔记之七:键盘输入消息
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.c ...
- 多线程编程学习笔记——使用异步IO
接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...
- Linux Shell编程学习笔记——目录(附笔记资源下载)
LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...
随机推荐
- timestamp时间戳的应用(微信小程序开发也一样)
在微信小程序开发时发现一个timestamp的时间戳的变量 比如获取微信运动步数时候 timestamp是如何形成的在JS中 是这么形成的 var timestamp = Date.parse(new ...
- springboot学习笔记-4 整合Druid数据源和使用@Cache简化redis配置
一.整合Druid数据源 Druid是一个关系型数据库连接池,是阿里巴巴的一个开源项目,Druid在监控,可扩展性,稳定性和性能方面具有比较明显的优势.通过Druid提供的监控功能,可以实时观察数据库 ...
- python文件操作及os模块常用命令
1.文件打开 文件句柄 = open('文件路径', '模式') 2.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 三种基本 ...
- Linux useradd
在 linux 中,如果我们想添加一个用户,那么使用的命令如下: useradd [ 用户名 ] 实例如下: 那么添加密码如下: passwd [ 用户名 ] 实例如下: 然后输入密码,学过一点 ...
- spring boot https --restful接口篇
我们写的接口默认都是http形式的,不过我们的接口很容易被人抓包,而且一抓全是明文的挺尴尬的 spring boot配置https生成证书大的方向有3种: 1.利用keytool自己生成证书 2.从免 ...
- HTML列表的常用属性及其应用
首先列表分成有序和无序分别是<ol><ul>,无序的比较简单,看个例子: <html> <body> <h4>一个无序列表:</h4& ...
- MySQL 如何执行关联查询
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/51 当前mysql执行的策略很简单:mysql对任何关联都执行嵌 ...
- AO之Addins开发[杂谈1] Toolbar中添加一条分割线
在XML代码中,给Item添加separator属性,需要从哪里打分割线,就将其设置为true即可.如下图所示: 如紫色框住的灰色竖线所示. 默认separator属性是false的,这个小东西极其隐 ...
- NOIP2002 字符变换
啊本来以为2002的题应该会比较友善于是很naive地像模拟一样用着stl乱玩结果死也过不了最后一个点qaq 心情很悲痛于是为了解放自我 #include<iostream> #inclu ...
- SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [ SELECT ...