我给list control控件中添加啦复选框样式 然后响应LVN_ITEMCHANGED消息 代码如下
void CHideDlg::OnItemchangedList4(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here char str[256];
m_4.GetItemText(pNMListView->iItem,0,str,256);
HWND hwnd=::FindWindow(NULL,str);
::MessageBox(NULL,str,"测试下",MB_OK);
*pResult = 0;
}运行后 在对话框显示之前 就弹出 "测试下" 对话框啦!! 为什么会这样呢? 我想让它在我选中的时候弹出
void CHideDlg::OnItemchangedList4(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here char str[256];
m_4.GetItemText(pNMListView->iItem,0,str,256);
HWND hwnd=::FindWindow(NULL,str);
::MessageBox(NULL,str,"测试下",MB_OK);
*pResult = 0;
}运行后 在对话框显示之前 就弹出 "测试下" 对话框啦!! 为什么会这样呢? 我想让它在我选中的时候弹出
{
TRACE("No item was selected.\n");
return;
}过滤一下
初始化的时候会调用,iItem是-1
LPNMITEMACTIVATE temp = (LPNMITEMACTIVATE) pNMHDR; if (temp->iItem < 0) {
TRACE("No item was selected.\n");
return;
}
else
{
char str[256];
m_4.GetItemText(pNMListView->iItem,0,str,256);
HWND hwnd=::FindWindow(NULL,str);
//::ShowWindow(hwnd,SW_HIDE);
::MessageBox(NULL,str,"测试下",MB_OK); }