VC 得到工作列的高度和位置

2021-06-18 21:09:02 字數 1414 閱讀 3694

vc++得到工作列的高度和位置

1.判斷位置

systemparametersinfo(spi_getworkarea,   0,   &rt,   0)   

//工作列在下面的高度   

int   y   =   ::getsystemmetrics(sm_cyscreen)-rt.height();   

上面   

int   y   =   rt.top;   

左   

int   y   =   rt.left;   

右   

int   y   =   ::getsystemmetrics(sm_cxscreen)-rt.width();

2.得到高度,然後可判斷位置

crect   rect;   

cwnd *pwndprev=   findwindow("shell_traywnd", "");   

pwndprev->getwindowrect(&rect); 

就是工作列的高度 

if(rect.top>0)//下面

if(rect.left>0)//左面 

vc++得到和改變螢幕的解析度

//獲取螢幕的解析度   

int   nfullwidth=getsystemmetrics(sm_cxscreen);   

int   nfullheight=getsystemmetrics(sm_cyscreen);

devmode   lpdevmode;   

lpdevmode.dmbitsperpel=32;//修改為32位顏色   

lpdevmode.dmpelswidth=1024;//解析度x為1024   

lpdevmode.dmdisplayfrequency=85;//重新整理率為85hz   

lpdevmode.dmpelsheight=768;//解析度y為768   

lpdevmode.dmsize=sizeof(lpdevmode);   

lpdevmode.dmfields   =dm_pelswidth|dm_pelsheight|dm_bitsperpel|dm_displayfrequency;   

changedisplaysettings(&lpdevmode,1);

changedisplaysettings用vc實現動態改變windows的顯示特性

通過訊息控制窗體最大化和還原

//還原

sendmessage(wm_syscommand,sc_restore,0);

//最大化

sendmessage(wm_syscommand,sc_maximize,0); 

//最小化

sendmessage(wm_syscommand,sc_minimize,0);

**

VC取得工作列高度的方法

本文簡單介紹了vc取得工作列高度的兩個實現方法,具體 如程式設計客棧下所示,讀者可根據自身需求選擇或加以完善修改。方法一 trect rt systemparametersinfo spi getworkarea,0,rt,0 工作列在下面的高度 int y getsyst 上面 y rt.top ...

VC獲得桌面工作區與工作列大小 寬度與高度

獲得桌面工作區大小,即不包括工作列的大小,製作視窗全屏時經常用到,方法如下 rect rt systemparametersinfo spi getworkarea,0,pvoid rt,0 獲得工作列高度與寬度方法有二 1.判斷位置 rect rt systemparametersinfo spi...

VC環境中獲取窗體標題欄的位置和高度

通過呼叫系統函式 getsystemmetrics in int nindex 函式只有乙個引數,75個可選引數值,設定不同的引數值可以獲取到相應的資訊,比如獲取系統解析度 窗體顯示區域的寬度和高度 滾動條的寬度和高度等。此處介紹傳遞相應的引數獲取標題欄的資訊,getsystemmetrics sm...