混合使用WinForms和WinAPI控件

混合使用WinForms和WinAPI控件,winforms,winapi,c++-cli,Winforms,Winapi,C++ Cli,是否可以混合使用WinAPI控件创建和WinForms功能 这样的代码行不通 HWND hWndButton = CreateWindowEx(NULL, "BUTTON", "OK", WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 50, 220, 100, 24, (HWND)Handle.ToInt32(), (HMENU)101, GetModu

是否可以混合使用WinAPI控件创建和WinForms功能

这样的代码行不通

HWND hWndButton = CreateWindowEx(NULL,
    "BUTTON",
    "OK",
    WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
    50,
    220,
    100,
    24,
    (HWND)Handle.ToInt32(),
    (HMENU)101,
    GetModuleHandle(NULL),
    NULL);
System::Windows::Forms::Control^ control =
    System::Windows::Forms::Control::FromHandle(System::IntPtr(hWndButton));
Controls->Add(control); 
我需要这样做,以便在WinFrm应用程序中添加一些其他公司的C++ Win32 API编写的控件。
thx

您可以从控制类重写CreateParams属性以指定所需的类名。有关详细说明,请参阅博客文章。

您好,请参阅本文,也许会对您有所帮助。当然,CreateWindowEx调用工作正常。但不能用控件包装它,FromHandle将返回null ptr。从按钮获取通知消息需要覆盖WndProc。使用这些第三方控件的具体要求是什么还不清楚,从来没有人这样做过。你当然应该问他们。