是否有人知道如何分配窗口区域(SetWindowRgn或WinForms中的Control.Region ),而不破坏非客户端区域的主题化?
例如,运行以下命令会生成Windows 2000风格的非主题标题栏、边框等:
var form = new Form { Width=500, Height=500, BackColor = Color.Azure };
form.Text = "But soft, what light through yonder window breaks?";
var region = new Region (new Rectangle (Poin
Dim ThisModule As IntPtr
Dim Proc As Process() = Process.GetProcessesByName("Sol")
For i = 0 To Proc(0).Modules.Count - 1
If (Proc(0).Modules(i).ModuleName.ToString.Contains("UxTheme")) Then
ThisModule = Proc(0).Modules(i).BaseAddress
End If
我已经对这个问题进行了大量的搜索和测试,我仍然无法让垂直处理栏的PBM_SETMARQUEE正常工作。它总是显示给我一个完全绿色填充的加工条,但没有移动绿色的“矩形”从底部到顶部。如果我删除了PBS_VERTICAL样式,那么就会得到一个从左到右都有一个绿色“矩形”的水平处理栏。这意味着PBM_SETMARQUEE适用于水平处理器条,而不是垂直处理条。我还发现,如果禁用处理栏的窗口主题样式,PBM_SETMARQUEE会突然工作O_o!(但是没有窗口主题的颜色和动画)这里是代码的必要部分(使用c++和winapi):
//includes especially for the processb
我已经解决了之前的问题,通过卸载vs10并重新安装vs12,我没有任何头文件。现在它可以编译了,我可以运行这个项目了。
但是还有下一个问题:如果我通过运行调试器或者只是点击("play-button")来启动我的可执行文件,我的C++编译器会编译它,然后vs12开始加载符号。但是我可以等上几个小时,它什么也做不了。它告诉我,它正在从我的调试输出文件夹加载uxtheme.dll的符号。它还告诉我,如果我取消它将禁用自动符号加载。但是如果我取消它,什么也不会发生,我必须重新启动visual studio 2012。
有人知道我的问题出在哪里吗?