Avatar billede eht Nybegynder
28. november 2003 - 11:59 Der er 3 kommentarer og
1 løsning

Holde styr på ikoner på skrivebordet

Jeg lavet et multimedie-program. Når man laver et nyt projekt vælger man hvilken skærmindstilling projektet skal vis i.
Når projektet så afvikles bliver skærmindstillingen automatisk ændret hvis den er forkert. Når projektet lukkes stilles skærmen tilbage.

Nu er mit problem:
Hvis skærmindstillingen ændres til en lavere opløsning flyttes der rundt på på ikonerne på skrivebordet, også når skærmindstillingen er sat tilbage.

Kan man på en eller anden måde registrere hvor ikonerne skal være inden skærmændringen, og så sætte dem på plads bagefter.

//Erik
Avatar billede borrisholt Novice
28. november 2003 - 12:02 #1
Hvis du via DirectX skifter skærm mode går det af sig selv. Jeg ved ikke rigtigt noget om det. Derfor kun en kommentar.

Jens B
Avatar billede eht Nybegynder
28. november 2003 - 12:07 #2
Jeg skifter ikke via DirectX men bruger denne funktion:

function ChangeResolution(XResolution, YResolution, Depth: DWORD): BOOL;
var
  DevMode: TDeviceMode;
  i: integer;
begin
  Result := False;
  i := 0;
  while EnumDisplaySettings(nil, i, DevMode) do
    with DevMode do
    begin
      if (dmPelsWidth = XResolution) and
        (dmPelsHeight = YResolution) and
        (dmBitsPerPel = Depth) then
        if ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL then
        begin
          Result := True;
          SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0);
          Application.ProcessMessages;
          break;
        end;
      Inc(i);
    end;
end;
Avatar billede borrisholt Novice
28. november 2003 - 12:11 #3
Ja det er det der er "problemet"
Avatar billede eht Nybegynder
01. december 2003 - 23:21 #4
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester