大神们求救!!!!

weilaideshui2 2012-08-31 03:29:03
void CMy222Dlg::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
ClientToScreen(&point);
CRect rect;
GetDlgItem(IDC_BUTTON1)->GetClientRect(&rect);
GetDlgItem(IDC_BUTTON1)->ClientToScreen(&rect);
if (rect.PtInRect(point))
AfxMessageBox("1");

CDialog::OnLButtonUp(nFlags, point);
}
为什么按下去没有反应???
void CMy222Dlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rect;
m_sc.GetWindowRect(&rect);
ScreenToClient(&rect);
if (rect.PtInRect(point))
AfxMessageBox("1");
}
都没有反应???



...全文
184 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-03-16
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2012-08-31
  • 打赏
  • 举报
回复
if (rect.PtInRect(point))
AfxMessageBox("1");
因为在按钮区,对话框是不响应鼠标的,而响应鼠标时 point 又不在 按钮内。
所以永远不输出‘1’。没有else的话 就是你说的 没反应了。
weilaideshui2 2012-08-31
  • 打赏
  • 举报
回复
谢7楼大神!!!
schlafenhamster 2012-08-31
  • 打赏
  • 举报
回复
你调调:

if (rect.PtInRect(point))
AfxMessageBox("1");
else
AfxMessageBox("0");



不输出1,就什么都没有,不叫没反应
weilaideshui2 2012-08-31
  • 打赏
  • 举报
回复
用classwizard,然后发现点击没用
  • 打赏
  • 举报
回复
你这些函数都是怎么加进去的?
手工复制还是通过classwizard?
liuli7786 2012-08-31
  • 打赏
  • 举报
回复
你可以按照下面这样写:
BOOL CMy222Dlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_LBUTTONDOWN)
{
CRect rect;
GetDlgItem(IDC_BUTTON1)->GetClientRect(&rect);
GetDlgItem(IDC_BUTTON1)->ClientToScreen(&rect);
if (rect.PtInRect(pMsg->pt))
..............;//在此发一条命令
}
else if(pMsg->message==WM_LBUTTONUP)
{
CRect rect;
GetDlgItem(IDC_BUTTON1)->GetClientRect(&rect);
GetDlgItem(IDC_BUTTON1)->ClientToScreen(&rect);
if (rect.PtInRect(pMsg->pt))
..............;//在此发一条命令
}
return CDialog::PreTranslateMessage(pMsg);
}
柚子毛驴 2012-08-31
  • 打赏
  • 举报
回复
可以用Onclick事件
ON_BN_CLICKED(IDC_BTN_ID, &CMyDialog::OnBnClickedBtn)
void CMyDialog::OnBnClickedBtnNext2()
{
// 完成。拷贝dll到指定路径
}
liuli7786 2012-08-31
  • 打赏
  • 举报
回复
你可以在PreTranslateMessage函数中捕捉一下WM_LBUTTONDOWN和WM_LBUTTONUP消息,然后判断单击点是否在按钮上,如果是就发送消息。
weilaideshui2 2012-08-31
  • 打赏
  • 举报
回复
那应该怎么改代码呢?我想的是按下按钮发一条命令,松开又发一条
liuli7786 2012-08-31
  • 打赏
  • 举报
回复
对话框上的按钮没有ON_WM_LBUTTONUP和ON_WM_LBUTTONDOWN消息,你加的OnLButtonUp和OnLButtonDown响应函数针对的只是Dialog。
weilaideshui2 2012-08-31
  • 打赏
  • 举报
回复
没人??
weilaideshui2 2012-08-31
  • 打赏
  • 举报
回复
在线求救

15,979

社区成员

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

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