Picture 如何实现双击 (高手进) 有没有个可以把 怎么实现Picture控件双击事件 说清楚的 高手来帮我解答下这个问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 子类化CStatic类,比如类名为CNewStatic,在该类中处理WM_LBUTTONDBLCLK消息void CNewStatic::OnLButtonDblClk(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CStatic::OnLButtonDblClk(nFlags, point); AfxMessageBox(_T("HELLO"));}CNewStatic m_static; // 成员变量BOOL CXXDlg::OnInitDialog(){ ... m_static.SubclassDlgItem(IDC_STATIC1, this); m_static.ModifyStyle(0, SS_NOTIFY); // 或者在资源编辑器勾上Notify属性也可以 return TRUE;} 肯定有的。不过你点击在picture控件的中间没有用,因为picture控件只是一个矩形框架区域。不包含内部区域。响应对话框的双击事件吧重载这个函数:PreTranslateMessage BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_LBUTTONDBLCLK) { //判断点在范围内, } } 让picture继承一下CStatic是比较常用的方法,也可以通过父窗口的双击处理函数中加入坐标判断,方法很多,,一般都是采用继承CStatic的自定义picture类来实现 不子类化 CStatic 的方法 有的速度说下 为啥不子类化?那怎么响应wm_lbuttondblclk消息? BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(WM_LBUTTONDBLCLK == pMsg->message) { CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC1); ASSERT(pStatic); CRect rect; pStatic->GetWindowRect(&rect); if(rect.PtInRect(pMsg->pt)) { AfxMessageBox(_T("Click!")); } } return CDialog::PreTranslateMessage(pMsg);} VisualEleven两种方法都可取,特别第二种,很好, 设置工具栏按钮文本 正则表达式解析 VC的字符串解析问题 在vs2005里对于项目配置,有DEBUG,RELEASE,但我现在想加一个ANSI DEBUG,让它支持ANSI,现在是想具体配时跟DEBUG配置有什么不同,才能 在滚动时设备坐标为什么会变化? 请问用winpcap发送数据包一次能发送成百上千个末?? 请问如何让程序实现视频传输功能? 编写基于C++的com控建需要那些支持工具和参考书籍 句柄 怎样让多文档程序在启动时不打开一个空文档 MFC vc list control 控件怎么禁止键盘响应?
void CNewStatic::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CStatic::OnLButtonDblClk(nFlags, point); AfxMessageBox(_T("HELLO"));
}CNewStatic m_static; // 成员变量
BOOL CXXDlg::OnInitDialog()
{
...
m_static.SubclassDlgItem(IDC_STATIC1, this);
m_static.ModifyStyle(0, SS_NOTIFY); // 或者在资源编辑器勾上Notify属性也可以
return TRUE;
}
响应对话框的双击事件吧
重载这个函数:PreTranslateMessage
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_LBUTTONDBLCLK)
{
//判断点在范围内,
}
}
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(WM_LBUTTONDBLCLK == pMsg->message)
{
CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC1);
ASSERT(pStatic);
CRect rect;
pStatic->GetWindowRect(&rect);
if(rect.PtInRect(pMsg->pt))
{
AfxMessageBox(_T("Click!"));
}
}
return CDialog::PreTranslateMessage(pMsg);
}