SOS!!!一个菜单的问题,在线等待!
ilang 2002-06-28 04:11:49 下午看了一篇文章,关于改变菜单字体大小的,我调试了一下,发现系统的菜单字体,间距也全改变了,且不可恢复,再调试几遍,发现非常糟糕的问题出现了,菜单的字体可以改变回来,但间距不可恢复!越来越大,竟然占据了整个屏幕!!现在的问题是:怎么恢复???
那段代码如下:
{读取}
function GetMenuFontSize: Integer;
var
ncm: TNonClientMetrics;
PixelsPerInch: integer;
begin
ncm.cbSize := sizeof(TNonClientMetrics);
SystemParametersInfo(
SPI_GETNONCLIENTMETRICS,
sizeof(NONCLIENTMETRICS),
@ncm,
SPIF_UPDATEINIFILE
);
PixelsPerInch := GetDeviceCaps(GetDC(0), LOGPIXELSY);
Result := -MulDiv(ncm.lfMenuFont.lfHeight, 72, PixelsPerInch);
end;
{ 设置}
procedure SetMenuFontSize(FontSize: Integer);
var
ncm: TNonClientMetrics;
PixelsPerInch: Integer;
begin
ncm.cbSize := sizeof(TNonClientMetrics);
SystemParametersInfo(
SPI_GETNONCLIENTMETRICS,
sizeof(NONCLIENTMETRICS),
@ncm,
0
);
PixelsPerInch := GetDeviceCaps(GetDC(0), LOGPIXELSY);
ncm.lfMenuFont.lfHeight := -MulDiv(FontSize, PixelsPerInch, 72);
SystemParametersInfo(
SPI_SETNONCLIENTMETRICS,
sizeof(NONCLIENTMETRICS),
@ncm,
SPIF_UPDATEINIFILE
);
end;