访问Win32/MFC“;“东西”;来自C#

访问Win32/MFC“;“东西”;来自C#,c#,.net,mfc,C#,.net,Mfc,这篇文章中有一个很棒的代码示例: 它显示了如何清理.NET中DateTimePicker的一些行为。不幸的是,代码无法编译,因为.NET无法理解WM_KEYDOWN类型的东西。我可以在谷歌上搜索很多常数的值,比如 WM_KEYUP=0x0101 但我真的很难让NMHDR和WM_REFLECT工作。是否有某种Win32程序集需要添加到我的项目中才能使所有这些工作正常进行 谢谢 您需要使用已知的 […]随着开发人员基数的增加 它的生产应用程序被管理 代码,这似乎是很自然的 会有更多的机会 开发人员

这篇文章中有一个很棒的代码示例:

它显示了如何清理.NET中DateTimePicker的一些行为。不幸的是,代码无法编译,因为.NET无法理解WM_KEYDOWN类型的东西。我可以在谷歌上搜索很多常数的值,比如

WM_KEYUP=0x0101

但我真的很难让NMHDR和WM_REFLECT工作。是否有某种Win32程序集需要添加到我的项目中才能使所有这些工作正常进行


谢谢

您需要使用已知的

[…]随着开发人员基数的增加 它的生产应用程序被管理 代码,这似乎是很自然的 会有更多的机会 开发人员将深入到 某些应用程序的底层操作系统 关键的功能小贴士 至少目前是这样。谢天谢地 通用数据库的互操作特性 语言运行时(CLR),称为 平台调用(P/Invoke)非常有用 完成[…]


访问pinvoke.net获取这些声明。或者使用

private const UInt32 WM_KEYDOWN        = 0x0100;
[StructLayout(LayoutKind.Sequential)] 
struct NMHDR 
{
   public IntPtr hwndFrom;
   public IntPtr idFrom;
   public int code;
}