`
jelly_bitores
  • 浏览: 47210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MFC多文档程序双击文档选项卡实现文档最大化显示

 
阅读更多

 在CMainFrame类中重写虚方法PreTranslateMessage处理鼠标双击事件,方法原型如下:

 virtual BOOL PreTranslateMessage(MSG* pMsg);

 判断鼠标双击的区域是否为多文档选项卡区域,如果是调用全屏代码使文档全屏显示。

 

 判断鼠标双击区域关键代码如下:

 

BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
	switch(pMsg->message)
	{
	case WM_LBUTTONDBLCLK:
		{
			CRect rect,b;
			GetMDITabs().GetWindowRect(&rect);
			POINT pt = pMsg->pt;
			BOOL isAction = FALSE;
			if(theApp.m_Options.m_bTabsOnTop)
			{
				if(pt.x > rect.left && pt.x < rect.right 
					&& pt.y > rect.top && pt.y < rect.top + 20)
				{
					isAction = TRUE;
				}
			}
			else
			{
				if(pt.x > rect.left && pt.x < rect.right 
					&& pt.y > rect.bottom - 20 && pt.y < rect.bottom)
				{
					isAction = TRUE;
				}
			}
			if(isAction)
			{
				//处理双击事件使用文档全屏显示
				OnMaxshowtab(); 
				return TRUE;
			}
		}
		break;
	}
	
	return CMDIFrameWnd::PreTranslateMessage(pMsg);
}

 

分享到:
评论

相关推荐

    Visual C++编程技巧精选集 光盘

    99.如何禁止单文档程序的最大化按钮 100.如何禁止单文档程序的最小化按钮 101.如何获取顶层菜单所占的行数 102.如何获取单文档程序菜单栏的高度 103.如何获取菜单项的标题文本内容 104.如何以渐变色绘制选择的菜单项...

    TScrollWin

    其次,“全屏显示”功能让用户可以最大化利用屏幕空间,专注于当前的工作或查看内容。在全屏模式下,应用程序会隐藏菜单栏、工具栏和其他非主要内容元素,只显示子窗口的内容,提供无干扰的视觉体验。这对于演示、...

    mfc中 如何找到WM_SYSCOMMAND消息

    在Microsoft Foundation Classes (MFC) 中,`WM_SYSCOMMAND` 是一个重要的窗口消息,它用于处理系统菜单项的命令,例如最大化、最小化、关闭窗口等操作。要找到并处理这个消息,你需要在MFC应用程序中进行一系列步骤...

    进度条控件

    首先,我们需要了解MFC(Microsoft Foundation Classes)库中的CProgressCtrl类,这是VC6.0中实现进度条控件的基础。CProgressCtrl类是Windows API控件Progress Bar的包装,提供了对进度条的各种操作和设置。 **...

    多媒体教室

    在全屏接收屏幕广播时,如果教师未锁定学生机键盘鼠标,学生就可以在屏幕广播窗口上点击鼠标右键,在图所示的弹出菜单中除去全屏显示选项后即变为窗口方式接收广播。 学生在此模式下可以选择智能滚动、自由滚动、...

Global site tag (gtag.js) - Google Analytics