MFC应用实例:[7]双击主窗口弹出打开对话框
1、新建一个多重文档的MFC应用,工程的名字为Open
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/332d496699cf0253f549fe366b36e29146e85f82.jpg)
2、在工作区选择classview标签,展开Open classes,右击CMainFrame类,在弹出的菜单中选择add WindowsMessage Handler 命令,在弹出的对话框中的新建windows消息/事件列表框中选择WM_LBUTTONDBLCLK选项,单击add and Edit
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/46a92de039723d0359c0e335bb486143d6d45782.jpg)
3、在OnLButtonDblClk()函数里面添加代码如下:void CMainFrame::OnLButtonDblClk(UINT nFlags, CPoint point){ // TODO: Add your message handler code here and/or call default AfxGetApp()->m_pDocManager->OnFileOpen(); CMDIFrameWnd::OnLButtonDblClk(nFlags, point);}
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/d695563104ebf6a7b5255f98ffee1c324a184f82.jpg)
4、在上面的OnCreate()函数中添加一下代码// 为响应鼠标双击客户区的事件所增加的属性:CS_DBLCLKS HWND hMDIClientArea = GetWindow(GW_CHILD)->GetSafeHwnd(); ::SetClassLong(hMDIClientArea, GCL_STYLE, ::GetClassLong(hMDIClientArea,GCL_STYLE) | CS_DBLCLKS);
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/4a594f2c8cf1d8a7d419953746e34b2c57ee4782.jpg)
5、在工作区选择classview标签,展开Openclasses,右击CMainFrame类,在弹出的菜单中选择add virtual function 命令。在弹出的对话框中的Newvirtual function列表框中选择PreTranslateMessage,最后单击add and edit
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/49c5d3e34b2c56ee8c555bbdf775e5f4fdf54082.jpg)
6、在函数PreTranslateMessage()添加一下代码:BOOL CMain掂迎豢畦Frame::PreTranslateMessage(MSG忮氽阝另* pMsg){ // TODO: Add your specialized code here and/or call the base class // 如果是在主客户区双击鼠标,则发送WM_LBUTTONDBLCLK消息 if(pMsg->hwnd == m_hWndMDIClient && pMsg->message == WM_LBUTTONDBLCLK) PostMessage(WM_LBUTTONDBLCLK); // 发送鼠标双击消息 return CMDIFrameWnd::PreTranslateMessage(pMsg);}
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/7a3e980e7c75e5f407df33beb1ceaad7736bbc82.jpg)
7、运行结果在客户区双击出现打开对话框如下:
![MFC应用实例:[7]双击主窗口弹出打开对话框](https://exp-picture.cdn.bcebos.com/ef4c24ceaad7726b0cc9b854bf0f64781523b982.jpg)