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

来源:互联网 发布:c语言or符号 编辑:程序博客网 时间:2024/05/21 15:01
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);
17:40 | 添加评论 | 固定链接 | 写入日志 | 计算机与 Internet
怎样用鼠标拖动没有标题栏的对话框
1.
WM_NCHITTEST消息   
UINT   CMyDlg::   OnNcHitTest   (CPoint   point )   
{   
UINT   nHitTest   =CDialog   ::   OnNcHitTest   (point   );   
   return   (nHitTest   ==HTCLIENT)?   HTCAPTION   :   nHitTest   ;   
}
2.
void   CXxxDlg::OnLButtonDown(UINT   nFlags,   CPoint   point)     
{   
//移动窗口   
     SendMessage(WM_SYSCOMMAND,SC_MOVE|HTCLIENT,0);   
      CDialog::OnLButtonDown(nFlags,   point);   
}   
3.
void   CYourDlg::OnLButtonDown(UINT   nFlags,   CPoint   point)     
{   
CDialog::OnLButtonDown(nFlags,   point);   
          PostMessage(   WM_NCLBUTTONDOWN,   HTCAPTION,   MAKELPARAM(   point.x,   point.y));     
}   
4.
LRESULT CGameDemoDlg::OnNcHitTest(CPoint point)
{
//移动窗口
ScreenToClient(&point);
if (point.y<28)
{
//返回该值,欺骗系统,让它相信这就是标题栏
return HTCAPTION;
}
return CDialog::OnNcHitTest(point);
}
0 0
原创粉丝点击