WinCE工作区和任务栏
来源:互联网 发布:路由跟踪命令 linux 编辑:程序博客网 时间:2024/05/18 00:22
作者:lqxandroid2012
转自:http://blog.csdn.net/lqxandroid2012/article/details/8540498
//========================================================================
//TITLE:
// WinCE工作区和任务栏
//AUTHOR:
// norains
//DATE:
// Saturday 5-May-2007
//Environment:
// WinCE 5.0
//========================================================================
简单的来说,WinCE所谓的工作区(WorkArea),便是除去任务栏剩下的空间.当然,这个说法也并不是任何时候都是准确的,如果在任务栏的设置里将"总在最前面"的勾去除,那么工作区便是整个屏幕.
那么工作区有什么作用呢?具体表现又如何呢?我们以WinCE自带的IE为例子.
1.选中任务的"总在最前面",把"自动隐藏"的勾去掉,打开IE,我们会发现IE窗口的大小最低端(bottom)比任务栏的最顶端(top)高一个像素.
2.将"总在最前面"和"自动隐藏"的勾选中,重新打开IE,此时IE窗口比"1"时高度要高,但窗口的最低端(bottom)比任务栏的最顶端(top)依然还是高一个像素.因为选择"自动隐藏"之后,任务栏的高度已经变小,所以IE的高度大.
3.将"总在最前面"前面的勾去掉,选上"自动隐藏",重新打开IE.这时候我们可以发现,IE已经不理会任务栏的高度,其最低端(bottom)已经和屏幕的最低端重合.简单的来说,此时IE全屏.
4.将"总在最前面"和"自动隐藏"前面的勾去掉,重新打开IE.IE的情况和"3"相同.
对于微软其它的应用程序,表现形式也和IE基本相同.
由此我们可以看到工作区的大小关系:
不在最前 > 自动隐藏(总在最前面) > 正常状态(总在最前面,且不自动隐藏)
为什么会出现这种情况呢?因为在explorer里,对任务栏的设置,其实很大程度上就是对工作区进行范围变更.
从微软的任务栏的某个代码片段,我们可以更清楚地知道:
换句话来说,工作区的作用之一是让我们程序确定自定义全屏窗口的大小.当然,如果程序不是适应工作区,而是有自己固定的方位,则工作区的大小则显得不那么有意义了.
//TITLE:
// WinCE工作区和任务栏
//AUTHOR:
// norains
//DATE:
// Saturday 5-May-2007
//Environment:
// WinCE 5.0
//========================================================================
简单的来说,WinCE所谓的工作区(WorkArea),便是除去任务栏剩下的空间.当然,这个说法也并不是任何时候都是准确的,如果在任务栏的设置里将"总在最前面"的勾去除,那么工作区便是整个屏幕.
那么工作区有什么作用呢?具体表现又如何呢?我们以WinCE自带的IE为例子.
1.选中任务的"总在最前面",把"自动隐藏"的勾去掉,打开IE,我们会发现IE窗口的大小最低端(bottom)比任务栏的最顶端(top)高一个像素.
2.将"总在最前面"和"自动隐藏"的勾选中,重新打开IE,此时IE窗口比"1"时高度要高,但窗口的最低端(bottom)比任务栏的最顶端(top)依然还是高一个像素.因为选择"自动隐藏"之后,任务栏的高度已经变小,所以IE的高度大.
3.将"总在最前面"前面的勾去掉,选上"自动隐藏",重新打开IE.这时候我们可以发现,IE已经不理会任务栏的高度,其最低端(bottom)已经和屏幕的最低端重合.简单的来说,此时IE全屏.
4.将"总在最前面"和"自动隐藏"前面的勾去掉,重新打开IE.IE的情况和"3"相同.
对于微软其它的应用程序,表现形式也和IE基本相同.
由此我们可以看到工作区的大小关系:
不在最前 > 自动隐藏(总在最前面) > 正常状态(总在最前面,且不自动隐藏)
为什么会出现这种情况呢?因为在explorer里,对任务栏的设置,其实很大程度上就是对工作区进行范围变更.
从微软的任务栏的某个代码片段,我们可以更清楚地知道:
//任务栏高度,其值取自于微软原定义
#define TASKBAR_HEIGHT_AUTOHIDE 5
#define TASKBAR_HEIGHT 26
void CTaskBar::SetWorkArea(void)
{
RECT rcWorkArea = {0}, rcWorkAreaNew = {0};
//获取当前的工作区域
SystemParametersInfo(SPI_GETWORKAREA, 0, (void*)&rcWorkArea, 0);
//如果任务栏不是"总在最前面",则工作区设置为整个屏幕
SetRect(&rcWorkAreaNew, 0, 0, GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN));
//当m_bTaskBarOnTop == TRUE时表示为"总在最前面"
if (m_bTaskBarOnTop)
{
//m_bTaskBarAutoHide == TRUE时表示自动隐藏
if (m_bTaskBarAutoHide)
{
rcWorkAreaNew.bottom -= TASKBAR_HEIGHT_AUTOHIDE;
}
else
{
rcWorkAreaNew.bottom -= TASKBAR_HEIGHT;
}
}
//只改变最底端(bottom)
if (rcWorkArea.bottom != rcWorkAreaNew.bottom)
{
SystemParametersInfo(SPI_SETWORKAREA, 0, (void*)&rcWorkAreaNew, SPIF_SENDCHANGE);
}
SIP_InitializeSipRect();
}
#define TASKBAR_HEIGHT_AUTOHIDE 5
#define TASKBAR_HEIGHT 26
void CTaskBar::SetWorkArea(void)
{
RECT rcWorkArea = {0}, rcWorkAreaNew = {0};
//获取当前的工作区域
SystemParametersInfo(SPI_GETWORKAREA, 0, (void*)&rcWorkArea, 0);
//如果任务栏不是"总在最前面",则工作区设置为整个屏幕
SetRect(&rcWorkAreaNew, 0, 0, GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN));
//当m_bTaskBarOnTop == TRUE时表示为"总在最前面"
if (m_bTaskBarOnTop)
{
//m_bTaskBarAutoHide == TRUE时表示自动隐藏
if (m_bTaskBarAutoHide)
{
rcWorkAreaNew.bottom -= TASKBAR_HEIGHT_AUTOHIDE;
}
else
{
rcWorkAreaNew.bottom -= TASKBAR_HEIGHT;
}
}
//只改变最底端(bottom)
if (rcWorkArea.bottom != rcWorkAreaNew.bottom)
{
SystemParametersInfo(SPI_SETWORKAREA, 0, (void*)&rcWorkAreaNew, SPIF_SENDCHANGE);
}
SIP_InitializeSipRect();
}
换句话来说,工作区的作用之一是让我们程序确定自定义全屏窗口的大小.当然,如果程序不是适应工作区,而是有自己固定的方位,则工作区的大小则显得不那么有意义了.
- WinCE工作区和任务栏
- WinCE工作区和任务栏
- WinCE工作区和任务栏
- WinCE工作区和任务栏
- WINCE 隐藏任务栏、去除桌面图标和桌面背景
- wince任务栏的隐藏和显示
- wince6.0下调整任务栏和工作区
- wince6.0下调整任务栏和工作区
- wince6.0下调整任务栏和工作区
- wince6.0下调整任务栏和工作区
- 如何隐藏和显示winCE下标准外壳的任务栏
- 隐藏WINCE系统任务栏
- wince下隐藏任务栏
- wince 去掉任务栏
- wince隐藏任务栏
- wince 隐藏、显示任务栏
- wince 隐藏、显示任务栏
- WinCE 下隐藏任务栏
- 三大UML建模工具Visio、Rational Rose、PowerDesign的区别
- Ce6.0 camera Buffer Management
- Unix 下常用的写 log 的方式
- CE6.0下高分辨率camera内存分配设置
- XML SGML HTML 笔记
- WinCE工作区和任务栏
- 十款PHP开发者值得关注的编码工具
- PHP编程的五个良好习惯
- 在WinCe下如何让程序全屏
- 失业的程序员(十):分歧的产生
- 有声读物学前英语要上线了
- PHP程序员五大兵器排行
- 游戏开发笔记(五)——服务端系统分层
- STM32 RCC基本原理和配置流程