我试图在启动时启动窗体,并将它作为我的应用程序的整个运行时间保持为背景。基本上我想隐藏所有的桌面图标,并有一个空白的背景。此外,当用户点击某些按钮时,我希望BackColor的形式发生变化。winforms桌面上的窗口/最底部的窗口
我搜查了一堆,我一直找到一半的解决方案。这里是我到目前为止已经试过:
创建会取代的WndProc事件BackBaseForm,如果它WM_WINDOWPOSCHANGING
,我不叫base.WndProc(ref m)
,而是发送以下信息:
SetWindowPos(Handle, new IntPtr(1), 0, 0, this.width, this.height, SWP_NOZORDER);
然而,每当我点击表单时,它仍然会将它带到前面。我也尝试创建一个WINDOWPOS
结构,将指针调度到结构,然后修改结构。我不认为这会改变消息中的实际lParam
。
将有许多表单从几个不同的程序集启动,这将工作吗? – user1030064
只要所有的窗口都在同一个进程中,哪个程序集的窗体都是无关紧要的。即使在不同的进程中,您也应该可以做到这一点,但您需要使用一些较低级别的Win32 API调用。 –