MFC中獲取工作列大小

2021-09-25 10:52:24 字數 1540 閱讀 5393

你可以這樣

hwnd hwnd=getdesktopwindow();

rect rect;

getclientrect(hwnd,&rect);//可以得到桌面大小

還有就是上面所說的

int nscreenwidth, nscreenheight;

nscreenwidth = getsystemmetrics(sm_cxscreen);

nscreenheight = getsystemmetrics(sm_cyscreen);

獲得桌面工作區大小,即不包括工作列的大小,製作視窗全屏時經常用到,方法如下:

rect rt;

systemparametersinfo(spi_getworkarea,0,(pvoid)&rt,0);

獲得工作列高度與寬度方法有二:

1.判斷位置

rect rt;

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", ""); // 呼叫本物件即this的findwindow函式,返回視窗指標

pwndprev->getwindowrect(&rect);

就是工作列的高度

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

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

或者

cwnd* p = null ;

hwnd hwnd = ::findwindow("shell_traywnd",null) ; // 呼叫公有的findwindow函式,返回視窗控制代碼

if(hwnd)

p->getwindowrect();//包含有寬度

C 獲取螢幕大小或工作列大小

使用systeminformation類 當前的螢幕除工作列外的工作域大小 string currentscreensize outtaskbar systeminformation.workingarea.width.tostring systeminformation.workingarea.h...

工作列的大小

工作列大小的計算方法 寬度 和視窗寬度一樣 高度 視窗高度 工作區域高度 cwindowdc dc getdesktopwindow 取得桌面裝置控制代碼 int xres getdevicecaps dc,horzres 取得水平 int yres getdevicecaps dc,vertres...

獲取系統工作列高度

這個 返回系統工作列高度,以緹 twips 做單位,使用了systemparametersinfo api函式。option explicit public declare function systemparametersinfo lib user32 alias systemparameters...