怎样让我的程序全屏?等着用 我做的一个控制程序需要全屏(640*480分辨率),就是整个系统运行一个程序,但是我用SetWindowPos()函数做不到,调整不好位置,或并不是我预期的位置。请高手指点怎样实现! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在窗口的初始化中加入:ShowWindow(SW_SHOWMAXIMIZED); http://www.codeguru.com/dialog/FullScreenDlgDemo.shtml 真巧,我前几天刚刚看了一篇文章,就是这个方面的,你也看看吧。下面的代码应该可以的:void CFrame::OnViewFullScreen(){ if (m_bBlownUpMode) { if (!m_rNonBlownUpRect.IsRectEmpty()) { m_bBlownUpMode = FALSE; SetWindowPos(NULL, m_rNonBlownUpRect.left, m_rNonBlownUpRect.top, m_rNonBlownUpRect.Width(), m_rNonBlownUpRect.Height(), SWP_NOZORDER); } } else { m_bBlownUpMode = TRUE; GetWindowRect(&m_rNonBlownUpRect); int x=0, y=0, cx, cy; GetBlownUpPosition(&x, &y); GetBlownUpSize(&cx, &cy); SetWindowPos(NULL, x, y, cx, cy, SWP_NOZORDER); }}void CFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI){ CFrameWnd::OnGetMinMaxInfo(lpMMI); lpMMI->ptMinTrackSize=CPoint(MIN_FRAME_WIDTH, 320); int cx, cy; GetBlownUpSize(&cx, &cy); lpMMI->ptMaxTrackSize=CPoint(cx, cy);}void CFrame::OnNcLButtonDown(UINT nHitTest, CPoint point){ if (m_bBlownUpMode) return ; CFrameWnd::OnNcLButtonDown(nHitTest, point);}void CFrame::GetBlownUpPosition(int *px, int* py){ *px=0, *py=0; *px-=GetSystemMetrics(SM_CXFIXEDFRAME); *px-=GetSystemMetrics(SM_CXEDGE); *py-=GetSystemMetrics(SM_CYFIXEDFRAME); *py-=GetSystemMetrics(SM_CYCAPTION); *py-=GetSystemMetrics(SM_CYEDGE); *py-=GetSystemMetrics(SM_CYMENU);}void CFrame::GetBlownUpSize(int *pcx, int* pcy){ int x, y; GetBlownUpPosition(&x, &y); *pcx=GetSystemMetrics(SM_CXSCREEN); *pcy=GetSystemMetrics(SM_CYSCREEN); *pcx+=-x*2; *pcy+=-y; *pcy+=GetSystemMetrics(SM_CYEDGE); *pcy+=GetSystemMetrics(SM_CYFIXEDFRAME);}或者你直接看这里就行:http://www.csdn.net/expert/topic/769/769668.xml?temp=.715481 在OnInitDialog中加入CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN)); MoveWindow(0,0,rect.Width(),rect.Height()); //取得屏幕宽度m_nScreenWidth = ::GetSystemMetrics(SM_CXSCREEN);m_nScreenHeight = ::GetSystemMetrics(SM_CYSCREEN);//创建透明窗口CreateEx(WS_EX_TOPMOST, AfxRegisterWndClass(CS_DBLCLKS, AfxGetApp()-> LoadStandardCursor (IDC_ARROW)), "Measure", WS_POPUP|WS_VISIBLE, 0, 0, m_nScreenWidth, m_nScreenHeight, NULL, NULL, NULL );我用这个代码来创建一个全屏的,并且透明的窗口,如果你不要透明的也可以再改画笔。 在你的App类的InitInstance()函数中,“return TRUE;”前加上“m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);” MSDN光盘或下载地址? 默认的SDI工程,我加了一个CDialog,里面有一个Button,我怎么能通过这个Button添加文本到CRichEditView 如何获取Access中某一列的和???请教大虾们! “VC开发数据库应用程序是很不明智的”,这句话有道理吗? 关于vc中文件显示(打开)的问题。 单选框按钮在界面属性下面隐藏了,怎么用函数调出来? 谁有《Win32程序员参考大全(五)》呀 QQ那种拉窗帘的效果怎么做的呢? 鼠标坐标记录 显示乱码的问题,请大家指教 我要对dialog里的最小化,最大化和那个X按钮进行编程,怎么做? 有关数据源打开的问题
ShowWindow(SW_SHOWMAXIMIZED);
void CFrame::OnViewFullScreen()
{
if (m_bBlownUpMode)
{
if (!m_rNonBlownUpRect.IsRectEmpty())
{
m_bBlownUpMode = FALSE;
SetWindowPos(NULL,
m_rNonBlownUpRect.left,
m_rNonBlownUpRect.top,
m_rNonBlownUpRect.Width(),
m_rNonBlownUpRect.Height(),
SWP_NOZORDER);
}
}
else
{
m_bBlownUpMode = TRUE; GetWindowRect(&m_rNonBlownUpRect); int x=0, y=0, cx, cy;
GetBlownUpPosition(&x, &y);
GetBlownUpSize(&cx, &cy); SetWindowPos(NULL, x, y, cx, cy, SWP_NOZORDER);
}
}void CFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
CFrameWnd::OnGetMinMaxInfo(lpMMI); lpMMI->ptMinTrackSize=CPoint(MIN_FRAME_WIDTH, 320);
int cx, cy;
GetBlownUpSize(&cx, &cy);
lpMMI->ptMaxTrackSize=CPoint(cx, cy);
}void CFrame::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
if (m_bBlownUpMode)
return ; CFrameWnd::OnNcLButtonDown(nHitTest, point);
}void CFrame::GetBlownUpPosition(int *px, int* py)
{
*px=0, *py=0; *px-=GetSystemMetrics(SM_CXFIXEDFRAME);
*px-=GetSystemMetrics(SM_CXEDGE); *py-=GetSystemMetrics(SM_CYFIXEDFRAME);
*py-=GetSystemMetrics(SM_CYCAPTION);
*py-=GetSystemMetrics(SM_CYEDGE);
*py-=GetSystemMetrics(SM_CYMENU);
}void CFrame::GetBlownUpSize(int *pcx, int* pcy)
{
int x, y;
GetBlownUpPosition(&x, &y); *pcx=GetSystemMetrics(SM_CXSCREEN);
*pcy=GetSystemMetrics(SM_CYSCREEN); *pcx+=-x*2; *pcy+=-y;
*pcy+=GetSystemMetrics(SM_CYEDGE);
*pcy+=GetSystemMetrics(SM_CYFIXEDFRAME);
}
或者你直接看这里就行:
http://www.csdn.net/expert/topic/769/769668.xml?temp=.715481
CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN));
MoveWindow(0,0,rect.Width(),rect.Height());
m_nScreenWidth = ::GetSystemMetrics(SM_CXSCREEN);
m_nScreenHeight = ::GetSystemMetrics(SM_CYSCREEN);
//创建透明窗口
CreateEx(WS_EX_TOPMOST,
AfxRegisterWndClass(CS_DBLCLKS, AfxGetApp()-> LoadStandardCursor (IDC_ARROW)),
"Measure", WS_POPUP|WS_VISIBLE, 0, 0, m_nScreenWidth, m_nScreenHeight, NULL, NULL, NULL );我用这个代码来创建一个全屏的,并且透明的窗口,如果你不要透明的也可以再改画笔。
“m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);”