WinCE工作区和任务栏

//========================================================================
//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_AUTOHIDE5
#define TASKBAR_HEIGHT26

void CTaskBar::SetWorkArea( void )
... {
RECTrcWorkArea
=...{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();
}


换句话来说,工作区的作用之一是让我们程序确定自定义全屏窗口的大小.当然,如果程序不是适应工作区,而是有自己固定的方位,则工作区的大小则显得不那么有意义了.
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值