Winforms 本机Windows还是Win32?

Winforms 本机Windows还是Win32?,winforms,visual-studio-2010,winapi,visual-c++,win32gui,Winforms,Visual Studio 2010,Winapi,Visual C++,Win32gui,我对以下两者之间的区别感到有点困惑: LRESULT CALLBACK WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam); 及 我知道第一个是在win32中获取message to menage事件,但是当我们编写Windows窗体项目时,“WndProc(message%m)”是一样的吗 最后一个问题是:何时最好使用NativeWindow方法,何时最好使用win32方法来管理事件 我的项目是一个带有面板的简单窗口窗体

我对以下两者之间的区别感到有点困惑:

LRESULT CALLBACK WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam);

我知道第一个是在win32中获取message to menage事件,但是当我们编写Windows窗体项目时,“WndProc(message%m)”是一样的吗

最后一个问题是:何时最好使用NativeWindow方法,何时最好使用win32方法来管理事件

我的项目是一个带有面板的简单窗口窗体,在面板上我调用一个窗口,在这里我可以使用OpenGL操作


有人能帮我吗?

前者是原始的C风格Win32 API。后者是.NET类
System.Windows.Forms.Control
System.Windows.Forms.NativeWindow
的成员,用C++/CLI表示

我设想.NET运行时在内部实现了Win32回调,并安排它调用类方法(如果您选择在从
控件派生的类中重写它的话)


我不确定您为什么需要
NativeWindow
。如果出于某种原因,您希望处理原始窗口消息,则从
面板
派生您的类,并在那里重写
WndProc
<代码>面板
源于
控件

前者是原始的C风格Win32 API。后者是.NET类
System.Windows.Forms.Control
System.Windows.Forms.NativeWindow
的成员,用C++/CLI表示

我设想.NET运行时在内部实现了Win32回调,并安排它调用类方法(如果您选择在从
控件派生的类中重写它的话)


我不确定您为什么需要
NativeWindow
。如果出于某种原因,您希望处理原始窗口消息,则从
面板
派生您的类,并在那里重写
WndProc
<代码>面板
源于
控件

谢谢Igor;我调用NativeWindow来创建OpenGL渲染上下文,以便在窗口上显示我使用OpenGL库创建的内容;所以要想参加menage活动,我需要得到窗口消息。但目前我不知道这是否是做所有这些事情的最佳方式;如果你知道更好的选择,请告诉我。感谢您您可以从
NativeWindow
派生您的类并创建该类的实例;在这个类中,如果您愿意,您可以重写WndProc。我对.NET或OpenGL了解不够,不能给出设计建议,我必须遗憾地承认;我调用NativeWindow来创建OpenGL渲染上下文,以便在窗口上显示我使用OpenGL库创建的内容;所以要想参加menage活动,我需要得到窗口消息。但目前我不知道这是否是做所有这些事情的最佳方式;如果你知道更好的选择,请告诉我。感谢您您可以从
NativeWindow
派生您的类并创建该类的实例;在这个类中,如果您愿意,您可以重写WndProc。我必须遗憾地承认,我对.NET或OpenGL了解不够,无法给出设计建议。
virtual void WndProc(Message %m);