最近做了一个地下电缆巡检项目,终端使用 WinCE 5.0 的PDA,基于 .NET CF 3.5 和 SQL CE 3.5 开发,用到了蓝牙、GPS、GIS等技术。基于WinCE平台开发应用,界面美化和文字输入比较麻烦,以后还是尽量使用Windows Mobile平台做项目。
用户登录

主界面

标识器采集



电缆巡检





作者:黎波
博客:http://bobli.cnblogs.com/
日期:2010年10月10日
如下图所示,半透明的背景使得消息框的内容更加醒目。

如何实现呢?首先,透明背景其实是一个FormBorderStyle为FormBorderStyle.None,WindowsState为FormWindowState.Maximized的全屏窗体。
其次,半透明的效果是通过重写窗体的OnPaint事件处理函数,调用API函数AlphaBlend绘制出来的,这个函数在Windows Mobile 5.0及以上的平台支持。
protected override void OnPaint(PaintEventArgs e)
{
// Create a temp bitmap
Bitmap dimBackGround = new Bitmap(this.Width, this.Height);
Graphics gxTemp = Graphics.FromImage(dimBackGround);
// Color it black
gxTemp.Clear(Color.Black);
// Draw it with alpha transparency
e.Graphics.DrawAlpha(dimBackGround, 100, 0, 0);
// Clean up
gxTemp.Dispose();
dimBackGround.Dispose();
}
最后,使用消息框的代码如下所示:
BackgroundForm form = new BackgroundForm();
form.Show();
MessageBox.Show(txtMessage.Text);
form.Close();
为了能重用代码,最好封装一个新的MessageeBox类,例如叫MsgBox。
源码下载:DimmingBackgroundTest.zip