check list box 取消选中

lin422 2010-10-22 04:11:01
如何通过sendmessage 或者Postmessage从程序外部 改变 check list box中的某个选项的状态?
默认是选中的,如何取消?

SendMessage(handle,LB_SETSEL,0,0)怎么不行呢
...全文
270 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin422 2011-06-04
  • 打赏
  • 举报
回复
谢谢!
andyany 2011-06-02
  • 打赏
  • 举报
回复
笔误勘误:
SendDlgItemMessage(IDC_CHECKC1,BM_SETCHECK,BST_CHECKED,0); //小方块里面打勾勾
SendDlgItemMessage(IDC_CHECKC1,BM_SETCHECK,BST_UNCHECKED,0); //取消小方块里面的勾勾
andyany 2011-06-02
  • 打赏
  • 举报
回复
SendDlgItemMessage(IDC_CHECKC1,BM_SETCHECK,BST_CHECKED,0);
取消小方块里面的勾勾;
SendDlgItemMessage(IDC_CHECKC1,BM_SETCHECK,BST_UNCHECKED,0);
小方块里面打勾勾;
适用于radio button or check box。
lin422 2010-10-26
  • 打赏
  • 举报
回复
只是选中了选项的字符串 光标移动到字符串了 可是前面小方块里面的勾勾并没有取消
什么原因呢 谢谢
lin422 2010-10-25
  • 打赏
  • 举报
回复
SendMessage(handle,LB_SETCURSEL,6,0);

handle 是对的,这条语句就可以实现相应的功能

SendMessage(handle,LB_SETSEL,FALSE,-1);

就没有反应 加了Update也是一样

lin422 2010-10-25
  • 打赏
  • 举报
回复
::SendMessage(hWnd, (UINT)LB_SETSEL, (WPARAM)FALSE, (LPARAM)0);
Use this message only with multiple-selection list boxes.

是Muitiple selection的

我尝试了 SendMessage(handle,LB_SETSEL,0,-1);

取消所有的选择 没有反应 继续尝试中


C/C++ codeBOOL CheckDlgButton(
HWND hDlg,
int nIDButton,
UINT uCheck
);

这个是同一个程序吧?我要取消另外一个程序的list box选中的项
zwfgdlc 2010-10-22
  • 打赏
  • 举报
回复
BOOL CheckDlgButton(          
HWND hDlg,
int nIDButton,
UINT uCheck
);

不行吗?
Eleven 2010-10-22
  • 打赏
  • 举报
回复
::SendMessage(hWnd, (UINT)LB_SETSEL, (WPARAM)FALSE, (LPARAM)0);
Use this message only with multiple-selection list boxes.

libinfei8848 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lwbeyond 的回复:]
发完后, 也要UpdateData(FALSE);
[/Quote]
是UpdataWindow吧
muzizongheng 2010-10-22
  • 打赏
  • 举报
回复
SetItemState()
lwbeyond 2010-10-22
  • 打赏
  • 举报
回复
发完后, 也要UpdateData(FALSE);
lin422 2010-10-22
  • 打赏
  • 举报
回复
句柄是对的 就可以用

SendMessage(handle,LB_SETSEL,0,0)

or SendMessage(handle,CHECK_SET,0,0)

?
zjexe 2010-10-22
  • 打赏
  • 举报
回复
另外一个程序的话 要获取他的check list box的句柄 你确认你的句柄获取是对的么?
cutrain2009 2010-10-22
  • 打赏
  • 举报
回复
不是LB_SETSEL
好像是CHECK_SET,
lin422 2010-10-22
  • 打赏
  • 举报
回复
是要改变另外一个程序中的check list box的值。 不是一个程序。
xiaohuh421 2010-10-22
  • 打赏
  • 举报
回复
给控件发消息用SendMessage不方便的,有一个专用的API:
LONG SendDlgItemMessage(
  HWND hDlg, // handle of dialog box
  int nIDDlgItem, // identifier of control
  UINT Msg, // message to send
  WPARAM wParam, // first message parameter
  LPARAM lParam // second message parameter
  );

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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