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);
}
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
- VC++得到任务栏的高度和位置的方法
- VC++得到任务栏的高度和位置
- 得到任务栏的高度
- VC取得任务栏高度的方法
- 判断任务栏的位置高度
- VC++获得桌面背景区域和获取任务栏的高度
- java取任务栏高度的方法汇集
- WIN API-VFP取得任务栏的尺寸(宽度和高度)及位置
- VC环境中获取窗体标题栏的位置和高度
- 取得任务栏的高度
- 取得任务栏的大小和位置
- Javascript中得到各种高度的方法
- 得到android屏幕高度的方法
- Delphi中三种方法获取Windows任务栏的高度
- 获取程序在任务栏中按钮的位置的方法
- Android得到状态栏和标题栏的高度
- 获取系统任务栏位置宽高信息的方法
- [iOS] 改变tabBar高度/位置的方法
- spring的工作原理
- Spring JdbcTemplate方法详解
- SQL防注入的几个途径
- ECSHOP中多图广告位的图片顺序问题
- 用OpenSceneGraph实现的NeHe OpenGL教程 - 第四十七课
- VC++得到任务栏的高度和位置的方法
- 《俄罗斯方块》今夏坠入PS4/Xbox One
- SQL Server---存储过程
- 黑马程序员--高新技术--泛型
- 关于java中finally中的语句在return前还是后执行的个人理解。
- float和double变量的内存布局
- 统计一个字符串中的单词的个数,并打印各个单词
- 同一个项目中使用Swift和Objective-C
- MonoForAndroid的按钮单击事件及监听器的实现方式