SendMessage 与 SendDlgItemMessage 的简单问题

Silent_Spring 2008-02-02 10:10:10
我想问一下这两个的区别
在我的程序中,SendMessage的那种方法没有成功.
1.
SendDlgItemMessage(hDlg,IDC_LIST,LB_ADDSTRING,0,(LPARAM)"ListBox");

2.
SendMessage(hDlg,WM_COMMAND,MAKEWPARAM(IDC_LIST,LB_ADDSTRING),(LPARAM)"ListBox");

谢谢大家
...全文
829 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SendMessage 的窗口是 listbox
cnzdgs 2008-02-02
  • 打赏
  • 举报
回复
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");

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧