|
Вопрос # 784/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Как изменить размер рабочего стола, как это делает панель задач?
 |
Вопрос задал: Фамилия Имя Отчество (статус: Посетитель)
Вопрос отправлен: 24 июля 2007, 14:27
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 26 июля 2007, 11:58; участников в обсуждении: 3.
|
Аксион (статус: 4-ый класс), 24 июля 2007, 14:39 [#1]:
procedure SetScreen(BPP:byte;width,height,FR:integer);
var
D: TDevMode;
h: HWND;
begin
h:=0;
D.dmDeviceName:=\'DISPLAY\';
D.dmBitsPerPel:=BPP;
D.dmDisplayFrequency:=FR;
D.dmPelsWidth:=Width;
D.dmPelsHeight:=Height;
D.dmFields:=DM_BITSPERPEL+DM_PELSWIDTH+DM_PELSHEIGHT+DM_DISPLAYFREQUENCY;
D.dmSize:=SizeOf(D);
if ChangeDisplaySettings(D,CDS_TEST)=DISP_CHANGE_SUCCESSFUL then
ChangeDisplaySettings(D,CDS_UPDATEREGISTRY)
else
MessageBox(h,\'This mode is not supported by your video.\',
\'Failed to change mode\', MB_ICONWarning);
end;
Вызывается так: SetScreen(глубина цвета, разрешение по горизонтали, разрешение по вертикали, частота в герцах); Например:
SetScreen(16,800,600,80); {16 бит цвет, 800х600, 80Гц.}
При завершении программы для восстановления старых параметров вызываем эту процедуру с сохраненными ранее значениями:
SetScreen(BPP,DefWidth,DefHeight,80);
Взято с http://delphiworld.narod.ru
|
|
Аксион (статус: 4-ый класс), 24 июля 2007, 14:42 [#2]:
вот ещё:
procedure ChangeDisplayResolution(x, y: word);
var
dm: TDEVMODE;
begin
ZeroMemory(@dm, sizeof(TDEVMODE));
dm.dmSize := sizeof(TDEVMODE);
dm.dmPelsWidth := x;
dm.dmPelsHeight := y;
dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
ChangeDisplaySettings(dm, 0);
end;
|
|
Dron (статус: Студент), 25 июля 2007, 09:48 [#3]:
Матвеев Мефодий Олегович: размеры рабочего стола и разрешение экрана - это разные вещи. Речь совсем о другом.
С уважением.
|
|
Аксион (статус: 4-ый класс), 25 июля 2007, 11:53 [#4]:
>>размеры рабочего стола и разрешение экрана - это разные вещи. Речь совсем о другом.
О чём?
|
|
Dron (статус: Студент), 25 июля 2007, 14:09 [#5]:
Речь о размерах той области рабочего стола, что является клиентской, т.е. той, где расположены значки и на которой размещаются открытые окна. К примеру, если изменить размер панели задач (например, "подтянуть" её повыше), то эта область станет меньше в высоту. Разрешение экрана в этом случае не при чём.
С уважением.
|
|
Фамилия Имя Отчество (статус: Посетитель), 26 июля 2007, 11:58 [#6]:
Совершенно верно Dron.
Нужно поменять размер, а не разрешение.
Аналог: winamp при modern skin в режиме docked.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|