vc++ 中如何派生 picture控件的 类?

我修改了picture控件的notify属性和IDC_STATIC,发现它只能相应click事件,我想在它的基础上派生一个新的类CPic,能够响应mousemove消息,... 我修改了picture控件 的 notify属性和IDC_STATIC,发现它只能相应click事件,我想在它的基础上派生一个新的类CPic,能够响应mousemove 消息,请问我该怎样做?代码怎么写?请高手指教 展开
 我来答
crystal蝴蝶飞
2010-08-30 · 超过25用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:66.1万
展开全部
1,picture控件空间响应mousemove 消息不需要重新派生类,先为对话框或者view添加mousemove 消息响应函数,然后重载消息控制函数PreTranslateMessage(MSG* pMsg);
2,在这个函数中添加以下代码:
if(WM_MOUSEMOVE == pMsg-> message)
if(pMsg-> hwnd == GetDlgItem(IDC_STATIC)-> GetSafeHwnd())
{
//这里添加移动鼠标是需要响应的代码

}
mkala
2010-09-08 · 超过12用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:30.5万
展开全部
在你的CPic类中响应WM_NCHITTEST消息
CPic.h

//{{AFX_MSG(CPic)
afx_msg UINT OnNcHitTest(CPoint point);
//}}AFX_MSG

CPic.cpp
BEGIN_MESSAGE_MAP(CPic, CStatic)
//{{AFX_MSG_MAP(CPic)
ON_WM_NCHITTEST()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

UINT CPic::OnNcHitTest(CPoint point)
{
// TODO:
CRect rc;
GetWindowRect(rc);

if(!rc.PtInRect(point))
return CStatic::OnNcHitTest(point);

//you can do anything here , ...........

return CStatic::OnNcHitTest(point);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式