MFC Grid Control 标题栏上的CheckBox点不了

zhangwuji154 2010-05-11 04:40:44

第0列有CheckBox,但点不了,我想用鼠标左键响应之类的事件去触发,但这是个custom control,怎么写啊?
...全文
392 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzaifei 2010-05-14
  • 打赏
  • 举报
回复
写错了,afx_msg void OnGridEndEdit(NMHDR *pNotifyStruct, LRESULT* pResult);
应该是afx_msg void OnGridClick(NMHDR *pNotifyStruct, LRESULT* pResult);
fzaifei 2010-05-14
  • 打赏
  • 举报
回复
就像17楼说的那样哦,恭喜lz解决。。。
afx_msg void OnGridEndEdit(NMHDR *pNotifyStruct, LRESULT* pResult);


ON_NOTIFY(GVN_ENDLABELEDIT, IDC_CUSTOM_GRID, OnGridClick)

void CMyDialog::OnGridClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/)
{
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
int row=pItem->iRow;
int col=pItem->iColumn;
}
IranCyberArmy 2010-05-13
  • 打赏
  • 举报
回复
楼主,你需要的是
ON_NOTIFY(NM_CLICK, IDC_GRID, OnGridClick)
在demo里搜这些,
授人以鱼,不如授人以渔,
看demo里的如何在点击的时候显示在下面那些个消息。
zhangwuji154 2010-05-13
  • 打赏
  • 举报
回复
我说的解决,是说终于编译能通过了,只是简单的显示出来,但还不能点,原来在VC6下编译能通过,但VS2008下就不行,
zhangwuji154 2010-05-13
  • 打赏
  • 举报
回复
没啊,首先,消息怎么加不知道
其次,怎么通过点判断列,不知道,
我上面那个是MFC的List控件的通过点判断列的函数,写出来是为让你们明白我想干什么。
向立天 2010-05-13
  • 打赏
  • 举报
回复
问题解决了?
恭喜
zhangwuji154 2010-05-13
  • 打赏
  • 举报
回复
找到了通过点判断列的函数了
void CEditListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

m_bFocus = TRUE;

LVHITTESTINFO lvhit;
lvhit.pt = point;
int item = SubItemHitTest(&lvhit);
zhangwuji154 2010-05-13
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/miscctrl/gridctrl.aspx

而且我是在Microsoft Visual Studio.Net(2008)下做的,下面一群人也说了,在2008下有一些个问题,2005下无此问题,现在我是解决了

额,问一下,我的图片你们能看到吗?
就算我会添加了鼠标点击消息,我怎么差点鼠标点的位置就是第0列?
它里面有没有什么函数,我原来知道MFC的list控件有这些函数,忘了
向立天 2010-05-13
  • 打赏
  • 举报
回复
控件哪下的?
zhangwuji154 2010-05-13
  • 打赏
  • 举报
回复
人家那个控件消息里也加点信息,也是没用的,可以自己加个消息
http://group.gimoo.net/review/16006
zhangwuji154 2010-05-13
  • 打赏
  • 举报
回复
17楼强大啊
我找到了
void CGridCtrlDemoDlg::OnGridClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/)
{
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
Trace(_T("Clicked on row %d, col %d\n"), pItem->iRow, pItem->iColumn);
}
这样就知道点的那个位置的行列了
zhangwuji154 2010-05-12
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090707/22/08631561-8bfc-4b09-a3bc-f65d6c4dd442.html
zhangwuji154 2010-05-12
  • 打赏
  • 举报
回复
嗯,父类是CWnd
zhangwuji154 2010-05-12
  • 打赏
  • 举报
回复
我先讲一下这是要干什么,
这就是一个Grid控件,Grid大家都知道吧,就是个表格.
这个控件呢,能把某些行设为Fixed,Fixed的就作为标题行,上面那个第0行就是这样,一点这个Fixed行的某格,整个列就选中了,同样,可以选择Fixed的列,这里把第0行作为Fixed的,
它还有个功能就是把CheckBox放进单元格里.
如果放到第1列(以0为起始),那这样CheckBox就是可以点的.但是我把CheckBox放到Fixed的列了,这样的列是固定的,不允许编辑,当然也点不了,这怎么办?
向立天 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhangwuji154 的回复:]
普通按钮ctrl+w有,这个没有
[/Quote]
它的父类是不是CWnd的?
如果是就直接手动加啊
zhangwuji154 2010-05-12
  • 打赏
  • 举报
回复
普通按钮ctrl+w有,这个没有
向立天 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhangwuji154 的回复:]
引用 3 楼 xianglitian 的回复:

custom control也有鼠标消息啊
一样的

怎么写?
[/Quote]
如果是普通按钮你会写么?
MFC Grid Control我没用过
你要是现什么功能我也不知道
我说一样是连接消息的方式和普通窗口一样
zhangwuji154 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xianglitian 的回复:]

custom control也有鼠标消息啊
一样的
[/Quote]
怎么写?
向立天 2010-05-12
  • 打赏
  • 举报
回复
custom control也有鼠标消息啊
一样的
zhangwuji154 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bloodfighter 的回复:]

你说的这个是开源的控件吧?
[/Quote]
加载更多回复(1)

15,979

社区成员

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

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