当前位置:编程学习 > wap >>

CF 2.0下GetMessage无法获取WM_COMMAND消息

我在用C#写一个CF 2.0的程序,运行环境为VS2008自带的Pocket PC 2003 模拟器,试图手工控制所有WM_COMMAND消息,但是使用GetMessage时碰到了问题
我在PC上使用GetMessage是很顺手的,所有我想请问是什么原因导致下面代码中的GetMessage没能取得WM_COMMAND消息


 //WinUtils中各函数均来自CoreDll.dll
 public static class FormUtils
 {
  public static void Run(Form form)
  {
   form.Closed += form_Closed;

   form.Show();

   Int32 ret;
   MSG msg;
   //下面GetMessage永远都没法取到WM_COMMAND消息。然而鼠标、键盘消息均能取到。
   //其他类似WM_GETTEXTLENGTH等等一大批消息均无法获取,但是整个程序运作正常,且使用ccspy(远程查看器)能观察到所有消息
   while ((ret = WinUtils.GetMessage(out msg, WinConstants.NULL, 0, 0)) != 0)
   {
    if (ret != -1)
    {
     WinUtils.TranslateMessage(ref msg);
     WinUtils.DispatchMessage(ref msg);
    }
   }

   form.Dispose();
  }

  private static void form_Closed(object sender, EventArgs e)
  {
   WinUtils.PostQuitMessage(0);
  }
 }


 static class Program
 {
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [MTAThread]
  static void Main()
  {
   FormUtils.Run(new MainForm());
  }
 }
补充:移动开发 ,  Windows Phone
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,