在使用c#為wince程式設計時,有時需要override乙個方法——wndproc。比如用它來監視是否有u盤插入或拔除。但在wince下,並不能直接override它。它需要引用兩個命名空間:
using system.windows.forms;using microsoft.windowsce.forms;
換言之,system.windows.forms裡不提供訊息處理類。查閱msdn上的示例文章(
微軟的實現方法是:自定義訊息處理類,並繼承microsoft.windowsce.forms.messagewindow類, 再在類中override wndproc方法。同時把目標form作為自定義類的構
造函式引數傳入,具體**如下:
1. custommessagewindow.cs類
using system;
using system.collections.generic;
using system.text;
using system.threading;
using system.io;
using system.runtime.interopservices;
namespace udiskdemo
///
///
///
///
protected override void wndproc(ref microsoft.windowsce.forms.message m)
break;
case (int)cmd_dbt.dbt_configchangecanceled:
break;
case (int)cmd_dbt.dbt_configchanged:
break;
case (int)cmd_dbt.dbt_customevent:
break;
case (int)cmd_dbt.dbt_devicequeryremove:
break;
case (int)cmd_dbt.dbt_devicequeryremovefailed:
break;
case (int)cmd_dbt.dbt_deviceremovecomplete: //u盤解除安裝
break;
case (int)cmd_dbt.dbt_deviceremovepending:
break;
case (int)cmd_dbt.dbt_devicetypespecific:
break;
case (int)cmd_dbt.dbt_devnodes_changed://可用,裝置變化時
break;
case (int)cmd_dbt.dbt_querychangeconfig:
break;
case (int)cmd_dbt.dbt_userdefined:
break;
default:
break;
}break;}}
catch
base.wndproc(ref m);}}
}2. messageform.cs
using system;
using system.componentmodel;
using system.data;
using system.text;
using system.windows.forms;
using microsoft.windowsce.forms;
namespace udiskdemo}}
WinCE的非MFC程式中使用CString
經常在編譯 的時候,輸出視窗提示如下 其實也不是什麼大不了的提示,可以不用管他的!網上也找到許多解決此問題的方法。我發現在新建project的時候,如果加入了atl的支援就會有這個提示。估計是我的sdk裡面確實沒有dcom這個元件。當我將 include include 這兩個include去掉之後...
Unity中使用TimeSpane計算時差
引用命名空間 using system 宣告變數 蝴蝶到達ui目標的時間 public datetime time arriveuitarget 變數賦值 當前時間 butterfly.time arriveuitarget datetime.now 倆個timespane差值,可以得出時差 tod...
C 中使用屬性
使用屬性,避免將資料成員直接暴露給外界 item always use properties instead of accessible data members.學習研究.net的早期,經常碰到一些學習c net的朋友問,要屬性這種華而不實的東西做什麼?後來做專案時也時常接到team裡的人的抱怨反...