我有一个.NET应用程序,它的边框样式始终以'None'开头,因为它应该是一个具有固定分辨率的全屏应用程序。
但是,我想在应用程序启动时将窗口边框(Fixed3D)添加到此窗口,以便我能够在桌面上移动它。
我的第一个想法是让托盘应用程序运行,监视事件消息,并在此特定应用程序启动时以某种方式更改窗口样式。但是,我不确定这是否有效以及如何做到这一点。
任何可以指出我正确方向的人?
答案 0 :(得分:2)
您应该考虑使用 user32.dll 的SetWindowLongPtr
功能。
您需要获取与应用程序主窗口关联的窗口句柄。这可以使用以下方式完成:
Process[] processes = Process.GetProcesses();
foreach (Process process in processes) {
if (process.MainModule.FileName == @"C:\Program Files\App\app.exe") {
IntPtr handle = process.MainWindowHandle;
// Call method to change window style here.
break;
}
}
然后,您可以使用GWL_STYLE
常量(十进制值-16)和SetWindowLongPtr
设置适当的样式。
Changing the Style of the Main Window应该可以帮助您找到所需的样式。
答案 1 :(得分:1)
您可以从源代码中的主类继承类,并在适当的事件中更改其属性。虽然它是一个不同的应用程序,但它不会修改源代码。