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);