MFC 单文档边框 我用的单文档,然后去掉了状态,菜单,标题;;只剩下文档区域;;设置大小为全屏;;运行时还是有边框看得到;;PRECREATE里面我把样式 设置了NULL;;还是有耶;;这个是怎么弄的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 全屏显示在许多应用程序中都得到了应用。实现此功能的原理很简单:CWnd类中MoveWindow()函数可以按照指定参数来显示窗口。在执行窗口最大化以前利用GetWindowPlacement()函数先把窗口的当前位置保存在一个变量中,执行窗口最大化后可以通过SetWindowPlacement()函数调用此变量来恢复窗口。利用RepositionBars()函数取得应用程序客户区不被工具条掩盖的大小,GetWindowRect()函数取得应用程序窗口的大小,根据两者之间的关系和屏幕分辨率的尺寸来确定MoveWindow()函数的参数以达到屏幕最大化。实现步骤如下:(1) 利用VC6.0的AppWizard创建一个应用程序。创建一个单文档SDI应用程序,项目名为FullScreen。(2) 利用资源编辑器在主菜单中增加一个菜单项。在“编辑(E)”菜单下添加一个名为“全屏”的菜单,ID号为IDM_FULLSCREEN。(3) 利用ClassWizard为新菜单项添加对应的消息映射函数。进入ClassWizard,选择Message Maps选项卡,在class name下拉列表框中选择CMainFrame,在Object Ids列表框中选择IDM_FULLSCREEN,在message列表框中双击COMMAND,单击OK按钮。(4) 在CMainFrame类中增加以下变量:WINDOWPLACEMENT prePlacement;CRect m_FSRect;BOOL m_bFullScreen;(5) 在消息映射函数中添加如下代码:void CMainFrame::OnFullscreen() {// TODO: Add your command handler code hereGetWindowPlacement(&prePlacement);CRect m_RectOfCurrentWindow,m_RectOfClient;GetWindowRect(&m_RectOfCurrentWindow);RepositionBars(0,0xffff,AFX_IDW_PANE_FIRST,reposQuery,&m_RectOfClient);ClientToScreen(&m_RectOfClient);int nFullWidth = GetSystemMetrics(SM_CXSCREEN);int nFullHeight = GetSystemMetrics(SM_CYSCREEN);m_FSRect.left = m_RectOfCurrentWindow.left-m_RectOfClient.left;m_FSRect.top = m_RectOfCurrentWindow.top - m_RectOfClient.top;m_FSRect.right = m_RectOfCurrentWindow.right - m_RectOfClient.right+nFullWidth;m_FSRect.bottom = m_RectOfCurrentWindow.bottom - m_RectOfClient.bottom + nFullHeight;m_bFullScreen = TRUE;MoveWindow(&m_FSRect,TRUE);}(6) 对CMainFrame类进行Add Windows Message Handler操作,弹出消息选择对话框,对WM_GETMINMAXINFO消息添加消息响应函数。其实现代码如下:void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) {// TODO: Add your message handler code here and/or call defaultlpMMI->ptMaxTrackSize.x = 2*GetSystemMetrics(SM_CXSCREEN);lpMMI->ptMaxTrackSize.y = 2*GetSystemMetrics(SM_CYSCREEN);CFrameWnd::OnGetMinMaxInfo(lpMMI);}(7) 通过Project->Add To Project->Components And Controls菜单利用Gallery加入右键等善后处理,不再介绍。这样一个具有全屏显示的应用程序就诞生了。 GetWindowRect()与GetClientRect() 求助:怎样实现拖动鼠标动态画线? 为什么在按钮上无法响应LBUTTON_DOWN 消息? 2个问题,请高手指教! 新手上路到处都是问题,可能请教前辈更快吧。如何对vector 中的数据进行更快捷的查找? 如果捕获鼠标在自身的窗口外移动的事件? 怎样在预处理时获得当前的日期? 急!dialogbox 的 关于CSocket, 50分求救! vc列表框中一行的闪烁和停闪 能在vc6下,调用OnGetHostInfo(DOCHOSTUIINFO * pInfo)函数的进来看看 VS2008中如何导入active控件
实现步骤如下:
(1) 利用VC6.0的AppWizard创建一个应用程序。
创建一个单文档SDI应用程序,项目名为FullScreen。
(2) 利用资源编辑器在主菜单中增加一个菜单项。
在“编辑(E)”菜单下添加一个名为“全屏”的菜单,ID号为IDM_FULLSCREEN。
(3) 利用ClassWizard为新菜单项添加对应的消息映射函数。
进入ClassWizard,选择Message Maps选项卡,在class name下拉列表框中选择CMainFrame,在Object Ids列表框中选择IDM_FULLSCREEN,在message列表框中双击COMMAND,单击OK按钮。
(4) 在CMainFrame类中增加以下变量:
WINDOWPLACEMENT prePlacement;
CRect m_FSRect;
BOOL m_bFullScreen;
(5) 在消息映射函数中添加如下代码:
void CMainFrame::OnFullscreen()
{
// TODO: Add your command handler code here
GetWindowPlacement(&prePlacement);
CRect m_RectOfCurrentWindow,m_RectOfClient;
GetWindowRect(&m_RectOfCurrentWindow);
RepositionBars(0,0xffff,AFX_IDW_PANE_FIRST,reposQuery,&m_RectOfClient);
ClientToScreen(&m_RectOfClient);
int nFullWidth = GetSystemMetrics(SM_CXSCREEN);
int nFullHeight = GetSystemMetrics(SM_CYSCREEN);
m_FSRect.left = m_RectOfCurrentWindow.left-m_RectOfClient.left;
m_FSRect.top = m_RectOfCurrentWindow.top - m_RectOfClient.top;
m_FSRect.right = m_RectOfCurrentWindow.right - m_RectOfClient.right+nFullWidth;
m_FSRect.bottom = m_RectOfCurrentWindow.bottom - m_RectOfClient.bottom + nFullHeight;
m_bFullScreen = TRUE;
MoveWindow(&m_FSRect,TRUE);
}
(6) 对CMainFrame类进行Add Windows Message Handler操作,弹出消息选择对话框,对WM_GETMINMAXINFO消息添加消息响应函数。其实现代码如下:
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
// TODO: Add your message handler code here and/or call default
lpMMI->ptMaxTrackSize.x = 2*GetSystemMetrics(SM_CXSCREEN);
lpMMI->ptMaxTrackSize.y = 2*GetSystemMetrics(SM_CYSCREEN);
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
(7) 通过Project->Add To Project->Components And Controls菜单利用Gallery加入右键等善后处理,不再介绍。
这样一个具有全屏显示的应用程序就诞生了。