微蓝网分享经验,让生活更简单!移动APP免费注册登录

MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤 首发

阅读:42次 时间:2023-10-24 15:25:10来源:用户
最佳经验
由作者撰写原创经验并推荐置顶

在客户区双击出现打开对话框,以下内容是由微蓝经验网用户发布MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤,希望对于用户有一定帮助,为朋友进行解决疑惑,如若想了解更多相关内容,可以向底部移动了解更多与本教程文章相关解决经验方法!

工具与材料

Visual Studio 2010或者Visual C++6.0

方法/步骤
  1. 1

    新建一个多重文档的MFC应用,工程的名字为Open。

    MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
  2. 2

    在工作区选择classview标签,展开Open classes,右击CMainFrame类,在弹出的菜单中选择add WindowsMessage Handler 命令,在弹出的对话框中的新建windows消息/事件列表框中选择WM_LBUTTONDBLCLK选项,单击add and Edit。

    MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
  3. 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]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
  4. 4

    在上面的OnCreate()函数中添加一下代码

    // 为响应鼠标双击客户区的事件所增加的属性:CS_DBLCLKS

    HWND hMDIClientArea = GetWindow(GW_CHILD)->GetSafeHwnd();

    ::SetClassLong(hMDIClientArea, GCL_STYLE, ::GetClassLong(hMDIClientArea,GCL_STYLE) | CS_DBLCLKS);

    MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
  5. 5

    在工作区选择classview标签,展开Open classes,右击CMainFrame类,在弹出的菜单中选择add virtual function 命令,在弹出的对话框中的New virtual function列表框中选择PreTranslateMessage,最后单击add and edit。

    MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
  6. 6

    在函数PreTranslateMessage()添加一下代码:

    BOOL CMainFrame::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]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
  7. 7

    运行结果在客户区双击出现打开对话框如下:

    MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤
注意与说明

注意函数的添加,以上经验结束,与MFC应用实例:[7]双击主窗口弹出打开对话框-mfc点击按钮弹出对话框详细步骤有关的经验教程内容,若解决问题请点击“有用”,没有解决请向下浏览“相关”内容或点击“无用”平台积极改进优质原创的内容文章,点击下方工具分享给更多的朋友吧!

THE END
分享到:
免责声明:本文来自微蓝网用户分享,不代表微蓝网的立场。
作者信息

新手帮助关于我们招聘信息反馈投诉免责声明服务协议最新文章

微蓝网部分素材(图片、视频、音频等)来自于网络,不代表本站立场,以上素材或内容仅代表作者个人观点,因此产生相关问题作者本人负责,本站将不承担任何法律责任! 如有问题请进行侵权投诉

© 2025 VLPOS.com 版权所有 微蓝网 ICP备案号:黑ICP备20003952号-1  黑公网安备 23012602000120号