我想问一下这两个的区别
在我的程序中,SendMessage的那种方法没有成功.
1.SendDlgItemMessage(hDlg,IDC_LIST,LB_ADDSTRING,0,(LPARAM)"ListBox");
2.SendMessage(hDlg,WM_COMMAND,MAKEWPARAM(IDC_LIST,LB_ADDSTRING),(LPARAM)"ListBox");
谢谢大家

解决方案 »

  1.   

    SendDlgItemMessage是向对话框中的指定控件发送消息。
    SendMessage是向指定窗口或者控件发送消息。
    SendDlgItemMessage(hDlg,IDC_LIST,LB_ADDSTRING,0,(LPARAM)"ListBox");
    可以正常向List中AddString。
    SendMessage(hDlg,WM_COMMAND,MAKEWPARAM(IDC_LIST,LB_ADDSTRING),(LPARAM)"ListBox");
    不能达到预期的目的。
    因为WM_COMMAND是命令消息,主要是菜单或者工具按钮发给窗口的消息,而窗口中没有向List中AddString这种命令,除非你自己加入相应的代码处理。用SendMessage应该向List发送AddString消息。
    ::SendMessage(::GetDlgItem(this->m_hWnd, IDC_LIST),LB_ADDSTRING,0,(LPARAM)"ListBox");
      

  2.   

    SendMessage 的窗口是 listbox