我给树加了checkbox,本来是用OnClick响应的,可是发现可以用键盘空格控制点击checkbox,这样导致出错,怎么办?

lewice 2004-10-21 10:35:58
怎么办,把键盘屏蔽掉还是有什么别的办法,
在键盘消息里,我得不到树结点,也得不到checkbox的状态啊
怎么办啊?
谢了!
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
danyueer 2004-10-21
  • 打赏
  • 举报
回复
空谷的办法是靠继承得到选定的项,有办法却不说完整,不是我喜欢的风格。

建议用子类化的办法,继承你的树,重载WM_KEYDOWN消息,给你我写的代码,仅供参考:
void CTreeEx::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default

CTreeCtrl::OnKeyDown(nChar, nRepCnt, nFlags);

if(nChar==0x20)
{
HTREEITEM hItem = GetSelectedItem();
if (hItem != NULL)
{
UpdateCheck(hItem);
::PostMessage(GetParent()->GetSafeHwnd(),
WM_CHECK_CHANGE, NULL, NULL);
}
}
}
flyelf 2004-10-21
  • 打赏
  • 举报
回复
GetSelectedItem
lewice 2004-10-21
  • 打赏
  • 举报
回复
怎样作啊,具体点啊,谢了,小三
lixiaosan 2004-10-21
  • 打赏
  • 举报
回复
当焦点在ctreectrl时,;屏蔽键盘消息
lewice 2004-10-21
  • 打赏
  • 举报
回复
多谢,搞定了!
lewice 2004-10-21
  • 打赏
  • 举报
回复
WM_CHECK_CHANGE,也是你定义的吗,??
能完整吗?谢了!
lewice 2004-10-21
  • 打赏
  • 举报
回复
楼上的兄弟,UpdateCheck是个什么函数啊,你自己写的吗,能否也贴出来look一下

15,976

社区成员

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

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