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


用户登录


主界面

 


标识器采集 

 

 

 


电缆巡检 

 

 

 

 


作者:黎波

博客:http://bobli.cnblogs.com/

日期:2010年10月10日 

posted @ 2010-10-10 17:34 黎波 阅读(2222) 评论(28) 编辑

如下图所示,半透明的背景使得消息框的内容更加醒目。

 

如何实现呢?首先,透明背景其实是一个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

 

Dimming the background by Alex Yakhnin

posted @ 2010-10-10 16:16 黎波 阅读(1601) 评论(11) 编辑