我在程序中将屏幕分辨率由低改到高后,Windows 任务栏总是停留在屏幕中央,我想用
以下代码将它放到屏幕底部,却总是不行,请各位告诉我应该怎样做才行,最好给出代码,
谢谢。
var abp:Tappbardata;
begin
……
abp.hWnd:=FindWindow('shell_traywnd',0);
abp.uEdge:=ABE_BOTTOM;
SHAppBarMessage(ABM_SetPos,abp);
……
end;
因为你修改分辨率时,没有更新注册表
function TForm1.DynamicResolution(X, Y: word): BOOL;
var
lpDevMode: TDeviceMode;
begin
Result := EnumDisplaySettings(nil, 0, lpDevMode);
if Result then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight := Y;
Result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
// ^^^^^^^^^^^^^^^^^^
end;
end;