windows wpf for win7/win10,如何在运行时获取任务栏上的图标/按钮大小?特别是当DPI或相关的东西发生变化时

bbuxkriu  于 2023-06-07  发布在  Windows
关注(0)|答案(1)|浏览(158)

wpf for win7/win10,如何在运行时获取任务栏上的图标/按钮大小?特别是当DPI或相关的东西改变时。我看到Win32的旧方法不再起作用了。我可以只按照任务栏上的“任务”按钮的大小.

IntPtr hDesktop = GetDesktopWindow();
IntPtr hTray = FindWindowEx(hDesktop, IntPtr.Zero, "Shell_TrayWnd", null);
IntPtr hReBar = FindWindowEx(hTray, IntPtr.Zero, "ReBarWindow32", null);
IntPtr hTask = FindWindowEx(hReBar, IntPtr.Zero, "MSTaskSwWClass", null);
IntPtr hToolbar = FindWindowEx(hTask, IntPtr.Zero, "ToolbarWindow32", null);

//IntPtr hToolbar = FindWindowEx(hTray , IntPtr.Zero, "Task", null);
//GetWindowInfo(hToolbar , ref pwi);
irlmq6kh

irlmq6kh1#

在 Delphi 中可能是这样的:

var
hTray,hReBar,hTask,hTollbar : HWND;
TTray,TReBar,TTask,TToolbar : TRect;

hTray := FindWindow("Shell_TrayWnd", nil);
hReBar := FindWindowEx(hTray, 0, "ReBarWindow32", nil);
hTask := FindWindowEx(hReBar, 0 "MSTaskSwWClass", nil);
hToolbar := FindWindowEx(hTask, 0, "ToolbarWindow32", nil);
GetWindowRect(HWND,TTray); //usage : TTray.Width .. TTray.Height ..  ETC

相关问题