六、Windows子窗口控件的清单方块类别—接收来自清单方块的消息
当使用者用鼠标单击清单方块时,清单方块将接收输入焦点。下面的操作可以使父窗口将输入焦点转交给清单方块控件:
SetFocus (hwndList) ;
        
当清单方块拥有输入焦点时,光标移动键、字母键和Spacebar键都可以用来在该清单方块中选择某项。
清单方块控件向其父窗口发送WM_COMMAND消息,对按钮和编辑控件来说,wParam和lParam变量的含义是相同的:
| 
					 ]  | 
			|
| 
					 LOWORD (wParam)  | 
				
					 子窗口ID  | 
			
| 
					 HIWORD (wParam)  | 
				
					 通知码  | 
			
| 
					 lParam  | 
				
					 子窗口句柄  | 
			
通知码及其值如下所示:
| 
					 LBN_ERRSPACE  | 
				
					 -2  | 
			
| 
					 LBN_SELCHANGE  | 
				
					 1  | 
			
| 
					 LBN_DBLCLK  | 
				
					 2  | 
			
| 
					 LBN_SELCANCEL  | 
				
					 3  | 
			
| 
					 LBN_SETFOCUS  | 
				
					 4  | 
			
| 
					 LBN_KILLFOCUS  | 
				
					 5  | 
			
只有清单方块窗口样式包括LBS_NOTIFY时,清单方块控件才会向父窗口发送LBN_SELCHANGE和LBN_DBLCLK。
LBN_ERRSPACE表示清单方块已经超出执行空间。LBN_SELCHANGE表示目前选择已经被改变。这些消息出现在下列情况下:使用者在清单方块中移动加亮的项目时,使用者使用Spacebar键切换选择状态或者使用鼠标单击某项时。LBN_DBLCLK说明某项目已经被鼠标双击(LBN_SELCHANGE和LBN_DBLCLK通知码的值表示鼠标按下的次数)。
根据应用的需要,您也许要使用LBN_SELCHANGE或LBN_DBLCLK,也许二者都要使用。您的程序会收到许多LBN_SELCHANGE消息,但是LBN_DBLCLK消息只有当使用者双击鼠标时才会出现。如果您的程序使用双击,那么您需要提供一个复制LBN_DBLCLK的键盘接口。
