如何在C# 中使用CreateWindowEx创建一个.Net 控件。

shiafei 2009-03-12 02:09:35
如题,请高手指点
...全文
646 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwjbh 2009-03-14
  • 打赏
  • 举报
回复
谢谢啊,好东西
occam 2009-03-14
  • 打赏
  • 举报
回复
生命在于折腾啊...

public virtual void CreateHandle(CreateParams cp);
Declaring Type: System.Windows.Forms.NativeWindow

下个reflector看看system.windows.forms.dll是怎么实现的吧,大概有帮助
shiafei 2009-03-14
  • 打赏
  • 举报
回复
to xianguang321:

这里的TOOLTIP_CLASS是一个Win32类,并不是托管类。我想做到的在托管环境下创建一个Control的的派生类,再用CreateWindowEx创建为窗体。请指教
shiafei 2009-03-13
  • 打赏
  • 举报
回复
to xianguang321:
可以举个例子吗?

比如我又一个 UserControl1 (继承自UserControl),我要把它创建为窗体。用CreateWindowEx该怎么做。


xianguang321 2009-03-13
  • 打赏
  • 举报
回复
//MSDN Sintax:

HWND CreateWindowEx(
DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName,
DWORD dwStyle, int x, int y, int nWidth,
int nHeight, HWND hWndParent, HMENU hMenu,
HINSTANCE hInstance, LPVOID lpParam
);

----------------
//C# Declaration

[DllImport("User32", SetLastError=true)]
internal static extern int CreateWindowEx (
int dwExStyle, string lpClassName, string lpWindowName, int dwStyle,
int X, int Y, int nWidth, int nHeight, int hWndParent, int hMenu,
int hInstance, IntPtr lpParam);

----------------
//Direct Use

m_lTTHwnd = CreateWindowEx(0, TOOLTIP_CLASS, string.Empty,
lWinStyle, 0, 0, 0, 0, m_lParentHwnd, 0, 0, IntPtr.Zero);

这是我从网上给你找的,希望对你有帮助!
shiboss 2009-03-12
  • 打赏
  • 举报
回复
学习了
xianguang321 2009-03-12
  • 打赏
  • 举报
回复
引进来了你就可以拿这个直接用了
xianguang321 2009-03-12
  • 打赏
  • 举报
回复

[DllImport("user32.dll", EntryPoint="CreateWindowEx")]
public static extern int CreateWindowEx (
int dwExStyle,
string lpClassName,
string lpWindowName,
int dwStyle,
int x,
int y,
int nWidth,
int nHeight,
int hWndParent,
int hMenu,
int hInstance,
ref int lpParam
);
shiafei 2009-03-12
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~~
EveryCase 2009-03-12
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~~

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧