VC初学者

harrot 2000-04-07 10:33:00
我想问一下怎样用VC实现全屏的界面,能够屏蔽掉任务栏呢?
...全文
215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
onion 2000-05-04
  • 打赏
  • 举报
回复
zhongshan99,也给我一份源码吧,谢谢了!
hotyei 2000-05-04
  • 打赏
  • 举报
回复
在头文件中定义BOOL m_pWndFullScreen;
调用FullScreen()就可以啦。
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_pWndFullScreen=NULL;

}
void CMainFrame::FullScreen()
{

if (m_pWndFullScreen != NULL)
{
// If we are returning the app to the Maximized state, SetWindowPlacement()
// draws the entire app twice - once to its "Normal" state, then once to
// the maximized state. The LockWindowUpdate() calls suppress the extra
// redraw.

//ShowControlBar(&m_wndToolBar, m_bHadToolBar, FALSE);
//ShowControlBar(&m_wndStatusBar, m_bHadStatusBar, FALSE);

m_pWndFullScreen->LockWindowUpdate();
m_pWndFullScreen->SetWindowPlacement(&m_PreviousPlace);
m_pWndFullScreen->UnlockWindowUpdate();

LockWindowUpdate();
SetWindowPlacement(&m_MainPreviousPlace);
UnlockWindowUpdate();
m_pWndFullScreen = NULL;
}
else
{
m_pWndFullScreen = MDIGetActive();
ASSERT(m_pWndFullScreen != NULL);

//m_bHadToolBar = m_wndToolBar.IsWindowVisible();
//m_bHadStatusBar = m_wndStatusBar.IsWindowVisible();
//ShowControlBar(&m_wndToolBar, FALSE, FALSE);
//ShowControlBar(&m_wndStatusBar,FALSE, FALSE);

m_pWndFullScreen->GetWindowPlacement(&m_PreviousPlace);
GetWindowPlacement(&m_MainPreviousPlace);

CRect rectDesktop;
if (!::SystemParametersInfo(SPI_GETWORKAREA, 0, &rectDesktop, 0))
::GetWindowRect(::GetDesktopWindow(), &rectDesktop);
else
{
rectDesktop.right = ::GetSystemMetrics(SM_CXSCREEN);
rectDesktop.bottom = ::GetSystemMetrics(SM_CYSCREEN);
rectDesktop.right -= rectDesktop.left;
rectDesktop.bottom -= rectDesktop.top;
rectDesktop.left = -rectDesktop.left;
rectDesktop.top = -rectDesktop.top;
}

TRACE("Going to (%d,%d) - (%d,%d)\n", rectDesktop.left, rectDesktop.top,
rectDesktop.right, rectDesktop.bottom);

CRect rectDesired = rectDesktop;
::AdjustWindowRect(&rectDesktop, GetStyle(), TRUE);

TRACE("Adjusted to (%d,%d) - (%d,%d)\n", rectDesktop.left, rectDesktop.top,
rectDesktop.right, rectDesktop.bottom);

rectDesktop.bottom += ::GetSystemMetrics(SM_CYBORDER); // See "Ask Dr. GUI #10"
m_FullScreenPlace = rectDesktop;
m_MainFullScreenPlace = rectDesktop;

WINDOWPLACEMENT wpNew = m_PreviousPlace;
wpNew.showCmd = SW_SHOWNORMAL;
wpNew.rcNormalPosition = rectDesktop;

LockWindowUpdate();
SetWindowPlacement(&wpNew);
UnlockWindowUpdate();

TRACE("Before MDI Child to (%d,%d) - (%d,%d)\n", wpNew.rcNormalPosition.left, wpNew.rcNormalPosition.top,
wpNew.rcNormalPosition.right, wpNew.rcNormalPosition.bottom);

wpNew.rcNormalPosition = rectDesired;
::AdjustWindowRect(&(wpNew.rcNormalPosition), m_pWndFullScreen->GetStyle(), FALSE);

TRACE("MDI Child to (%d,%d) - (%d,%d)\n", wpNew.rcNormalPosition.left, wpNew.rcNormalPosition.top,
wpNew.rcNormalPosition.right, wpNew.rcNormalPosition.bottom);

m_pWndFullScreen->LockWindowUpdate();
m_pWndFullScreen->SetWindowPlacement(&wpNew);
m_pWndFullScreen->UnlockWindowUpdate();
}
}

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
// TODO: Add your message handler code here and/or call default
if (m_pWndFullScreen != NULL)
{
lpMMI->ptMaxSize.y =
lpMMI->ptMaxTrackSize.y = m_FullScreenPlace.Height();
lpMMI->ptMaxSize.x =
lpMMI->ptMaxTrackSize.x = m_FullScreenPlace.Width();
}
else
CMDIFrameWnd::OnGetMinMaxInfo(lpMMI);

}
kekefen1 2000-04-21
  • 打赏
  • 举报
回复
屏蔽任务栏的问题我想可以这么来:
任务栏的CLASSNAME 是 Shell_TrayWnd 用FindWindow()可以得到其指针
因为任务栏也是一个窗口,所以调用ShowWindow(SW_HIDE)可以将其隐藏,
等需要的时候在显示出来。
「已注销」 2000-04-14
  • 打赏
  • 举报
回复
需要的话我可以记给你一分原码.
longx 2000-04-14
  • 打赏
  • 举报
回复
最简单的做法:
int cx=GetSystemMetrics(SM_CXSCREEN);
int cy=GetSystemMetrics(SM_CYSCREEN);
MoveWindow(0,0,cx,cy);
OpenBall 2000-04-13
  • 打赏
  • 举报
回复

看看
http://www.csdn.net/expert/TopicView.asp?id=6999

harrot 2000-04-13
  • 打赏
  • 举报
回复
各位能不能在具体一点呢?
x_huang 2000-04-12
  • 打赏
  • 举报
回复
用DIRECT DRAW编独占屏幕的窗口
Shania 2000-04-08
  • 打赏
  • 举报
回复
用WS_POPUP风格的窗口,并且屏蔽掉WM_SYSKEYDOWN和WM_SYSKEYUP消息。
wild 2000-04-08
  • 打赏
  • 举报
回复
如果在98下,可利用System Hook,详细情况查看MSDN

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧