思路是重写PreTranslateMessage虚函数,若在对话框内有双击事件时,获取鼠标点击时的坐标信息,然后根据picture控件的坐标信息,判断双击是否发生在picture控件内。
假设picture控件为IDC_PICTURE,则在PreTranslateMessage虚函数代码如下(copy来的):
if(pMsg-> message == WM_LBUTTONDBLCLK) { CPoint ptCursor; GetCursorPos(&ptCursor); CRect rc; GetDlgItem(IDC_PICTURE)-> GetWindowRect(&rc); if(rc.PtInRect(ptCursor)) {
/*do what you want to do*/ Dlg2 dlg2; dlg2.DoModal();
/*do what you want to do*/
return TRUE;//这个必须加否则程序会跳异常 返回TURE就是告诉消息循环,我已经处理这个消息了,不用再交给其它窗口处理了。 }
} return CDialogEx::PreTranslateMessage(pMsg);