关于CStatic的几个问题

eachout 2004-06-29 10:10:46
我用CStatic派生出一个按钮类
(不要说我变态不用CButton -_-!)

1。在Dialog里面使用message宏ON_BN_CLICK定义了自己的处理函数后发现只要鼠标在CStatic上按下(没有UP)就产生clicked消息了……
不知道为什么?郁闷中……
有办法解决么(除了重写OnLButtonDown以外的办法)?

2。MSDN里说CStatic的DrawItem可以重载,并且只要CStatic有SS_OWNERDRAW属性就会产生WM_DRAWITEM消息从而调用DrawItem函数……
并且,在VC的对象重载列表中也可以找得到DrawItem函数……
但是我重载DrawItem却没有根本反应,是不是还有什么属性没有设置?

希望高手帮忙!
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eachout 2004-07-01
  • 打赏
  • 举报
回复
如果没有SS_NOTIFY
CStatic不会响应任何消息,包括鼠标消息
dongfa 2004-07-01
  • 打赏
  • 举报
回复
SS_NOTIFY
dongfa 2004-07-01
  • 打赏
  • 举报
回复

增加Notify风格
eachout 2004-07-01
  • 打赏
  • 举报
回复
顶一下
eachout 2004-06-30
  • 打赏
  • 举报
回复
我是说DrawItem没反应,鼠标有反应

向父窗口发消息用什么方法?Postmessage还是直接调用CStatic::OnLButtonDown?
豆腐 2004-06-29
  • 打赏
  • 举报
回复
//{{AFX_MSG(CStaticPro)
afx_msg void OnPaint();
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
afx_msg void OnCaptureChanged(CWnd *pWnd);
//}}AFX_MSG

DECLARE_MESSAGE_MAP()

这是我的几个处理的函数
豆腐 2004-06-29
  • 打赏
  • 举报
回复
1,你要在派生类里面处理鼠标的down和up事件,然后向父窗口转发消息
豆腐 2004-06-29
  • 打赏
  • 举报
回复
1.你要自己处理鼠标的down和up消息,而不是简单的ON_BN_CLICK
2,这个是得自己手工添加,但是你说的好像没有反应???
能把你的例子给我发过来吗?我帮你看看

15,978

社区成员

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

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