Microsoft  CSIP   WindowsMobile   MEDC   合作伙伴   体验中心 设为首页 加到收藏夹

 
登录       点击换一张     注册新用户 找回密码

WinCE互操作时传递托管控件句柄的小技巧
2008年05月06日03:37   编辑:黄季东 来源: 博客园 浏览: 358

在和Native Code打交道的时候,我们经常要传递某个控件(如form)的句柄(handle)给本地代码。下面的代码演示了如何使用Control的Copture属性和SetCapture,GetCapture方法来实现这个过程:
class WinAPI
{
   [DllImport(
"coredll.dll")]
   
private static extern IntPtr SetCapture(IntPtr hWnd);

   [DllImport(
"coredll.dll")]
   
private static extern IntPtr GetCapture();

   
public static IntPtr GetHWnd(Control ctrl)
   
{
      IntPtr hOldWnd 
= GetCapture();//获取当前活动窗体句柄
      ctrl.Capture 
= true;//设置ctrl为窗体焦点
      IntPtr hWnd 
= GetCapture();获取当前焦点句柄(即ctrl)        
      ctrl.Capture 
= false;
      SetCapture(hOldWnd);//还原Capture状态
      
return hWnd;
   }

}
调用的时候:
IntPtr hWndButton = WinAPI.GetHWnd(button1);
再把这个intPtr传给本地需要的函数中就Ok了。
简单吧!

Enjoy it !
发表评论
评论标题 :
评论内容 :

    查看评论

请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。 本站拥有管理笔名和留言的一切权利。
相关文章推荐
· WinCE中的Flash分区和CheckSum点滴 2008-4-25  无
· Windows CE 内存管理 2008-4-25  无
· 浅析Windows CE下浏览器源码 2008-4-23  付林林
· Windows Mobile 6 和 Exchange Server 2007 的新企业级功能 2008-4-22  无
· Windows Mobile 开发之桌面远程控制程序 2008-4-22  CSDN社区

  

论坛推荐  
热点活动
更多»

© CSIP 信息产业部软件与集成电路促进中心 All Rights Reserved 版权所有 京ICP备06020771号
联系电话:010-63951881-8003 王先生        邮件:wangj@csip.org.cn