您的位置:首页 > 编程语言 > C语言/C++

VC++得到任务栏的高度和位置

2013-10-27 20:16 302 查看
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);

//rect.bottom-rect.top 就是任务栏的高度

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);

转自http://wmnmtm.blog.163.com/blog/static/382457142011102232341557/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: