我给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;
}运行后 在对话框显示之前 就弹出 "测试下" 对话框啦!! 为什么会这样呢?   我想让它在我选中的时候弹出

解决方案 »

  1.   

    LPNMITEMACTIVATE temp = (LPNMITEMACTIVATE) pNMHDR; if (temp->iItem < 0)
    {
    TRACE("No item was selected.\n");
    return;
    }过滤一下
    初始化的时候会调用,iItem是-1
      

  2.   

    在对话框初始化时list控件 SetFocus()?
      

  3.   

    我这么做 照样弹出
    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); }