我正在尝试在C#中实现Windows Messaging,以便使用常规exe 来传递HTML页面。我需要做的是创建一个具有特定类名和窗口名的新窗口,以便其他进程可以将Windows消息发送到我的Activex应用程序。
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr CreateWindowEx(
WindowStylesEx dwExStyle,
string lpClassName,
string lpWindowName,
WindowStyles dwStyle,
int x,
int y,
int nWidth,
int nHeight,
IntPtr hWndParent,
IntPtr hMenu,
IntPtr hInstance,
IntPtr lpParam);
IntPtr temp = CreateWindowEx(0, "privateclassname", "privatewindowname",
WindowStyles.WS_CHILD | WindowStyles.WS_VISIBLE, 0, 0, 1, 1,
IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
这是我一直在尝试的但是temp总是得到0而不是正确的窗口句柄。这段代码有什么问题?我怀疑 hWndParent 参数。给它0,因为我不知道父母的手柄,或者它甚至存在。提前致谢
答案 0 :(得分:1)
您正在传递WS_CHILD以获取窗口样式标志,但您没有传递父窗口句柄(您传递的是0 / NULL)。尝试删除WS_CHILD样式。
另外,请参阅我上面调用RegisterClass的评论(如果适用)。