一種簡單實(shí)用的全屏方法
更新時(shí)間: 2007-05-16 13:38:27來源: 粵嵌教育瀏覽量:757
實(shí)現(xiàn)程序全屏幕顯示的思路有很多種,常見的一種就是:
1)利用Windows API提供的一個(gè)結(jié)構(gòu)體WINDOWPLACEMENT來存儲(chǔ)全屏顯示前視圖和主框架窗口在屏幕上的位置和顯示信息、非客戶區(qū)窗口的顯隱信息,以便全屏幕顯示時(shí)恢復(fù)窗口原狀;
2)通過API函數(shù)GetDesktopWindow()得到桌面窗口,由GetWindowRect()得到顯示器的尺寸;
3)通過AdjustWindowRect()來計(jì)算當(dāng)客戶區(qū)大小為屏幕大小時(shí)相應(yīng)的窗口大小;
4)通過SetWindowPlacement()來設(shè)置視圖窗口和主窗口為客戶區(qū)大小和屏幕大小的窗口;
5)處理窗口消息WM_GETMINMAXINFO,使窗口能夠順利的、小化。
但是用這種方法并沒有實(shí)現(xiàn)真正的全屏,好像VC6的全屏也是這樣做的。如果有多屏顯卡,這樣實(shí)現(xiàn)的全屏是可以
從別的屏幕對其進(jìn)行放大縮小的。
下面介紹一種簡單實(shí)用的實(shí)現(xiàn)全屏的方法。
m_bFullScreen=!m_bFullScreen; // 設(shè)置全屏顯示標(biāo)志
//一種更好的全屏顯示
LONG style = ::GetWindowLong(this->m_hWnd,GWL_STYLE);
if(m_bFullScreen)//全屏顯示
{
style &= ~(WS_DLGFRAME | WS_THICKFRAME);
SetWindowLong(this->m_hWnd,GWL_STYLE, style);
this->ShowWindow(SW_SHOWMAXIMIZED);
CRect rect;
this->GetWindowRect(&rect);
::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,rect.left-1, rect.top-1, rect.right-rect.left + 3, rect.bottom-rect.top + 3, SWP_FRAMECHANGED);
}
else
{
style |= WS_DLGFRAME | WS_THICKFRAME;
SetWindowLong(this->m_hWnd, GWL_STYLE, style);
this->ShowWindow(SW_NORMAL);
}
粵嵌動(dòng)態(tài)
推薦閱讀
- ·Linux字符設(shè)備驅(qū)動(dòng)框架解析:file_operations的核心作用與實(shí)現(xiàn)
- ·廣東朝歌數(shù)碼科技股份有限公司專場招聘會(huì)
- ·深化產(chǎn)教融合,共筑技能人才培養(yǎng)新生態(tài) —— 廣州華立學(xué)院到訪粵嵌從化校區(qū)為深化產(chǎn)教
- ·校企合作新突破 | 粵嵌科技與三亞學(xué)院共探產(chǎn)教融合新路徑
- ·粵嵌科技入選國家級職業(yè)數(shù)字展館聯(lián)合建設(shè)單位,賦能計(jì)算機(jī)程序設(shè)計(jì)員高技能人才培養(yǎng)
- ·嵌入式實(shí)時(shí)操作系統(tǒng)的性能優(yōu)化與實(shí)現(xiàn)路徑
- ·校企攜手賦能教育!粵嵌科技助力海南科技職業(yè)大學(xué)探索 AGI 時(shí)代教學(xué)新范式
- ·嵌入式系統(tǒng)中的低功耗設(shè)計(jì)策略與實(shí)現(xiàn)路徑
- ·深圳市軒宇軟件開發(fā)有限公司專場招聘會(huì)
- ·嵌入式系統(tǒng)中的代碼空間優(yōu)化:策略與實(shí)踐