Ablakok rendezése tile nézetben
2010-02-11T01:29:06+01:00
2010-02-11T12:16:02+01:00
2022-07-25T06:33:51+02:00
  • Idáig én is eljutottam, csak az a baj, hogy ha nem férnek ki az ablakok, akkor nekem egymásra kell őket pakolnom, hogy arányosan fedjék egymást. Viszont ha marad szabad terület ahova lehetne még pakolni az asztalokat, akkor azokat optimálisan kéne méretezni és úgy rendezni őket.
    Mutasd a teljes hozzászólást!
  • Nem nagy ördöngősség, én pl. a következőképpen járnék el:

    Először is, vegyük a képernyő vízszintes és a függőleges méretét, és az ablakok minimális vízszintes és függőleges méretét.

    Ebből kiszámoljuk maxHNum-ot és maxVNum-ot: maximum hány ablak fér el vízszintesen illetve függőlegesen.

    Ha maxHNum*maxVNum kisebb mint ahány ablakunk van, akkor visszatérünk, hogy nem tudunk tileolni.

    Ezután ezt mondjuk:

    int v = maxVNum;
    int h = maxHNum;

    most elkezdem szépen lassan csökkenteni mindíg v és h közül a nagyobbat. Addig, amíg v*h kisebb lesz mint ahány ablakunk van. Ekkor eggyel visszalépünk, ekkor van egy optimális v-nk és h-nk, ez adja a gridünket. Ezen grid mentén kirakjuk az ablakokat.

    Ez egyszerű volt, de még ez volt a bonyolultabb, ultraigényes megoldás. Valójában szvsz. elég a következő is:

    A dolog egyszerűbb, ha csak N*N-es gridekben gondolkodsz, ekkor az egész algoritmus annyi, hogy veszed az ablakok számának gyökének felsőegészrészét, és olyan gridre rakod ki az ablakokat, ha meg a grid egy eleme kisebb lenne mint a specifikált, akkor visszatérsz, hogy nem lehet.

    Reklámblokk:
    Van egy kis szabad kapacitásom, ezért elvállalnék most napi 8 órás melóm mellett melókat. De azért ennél nagyobb lélegzetűeket. Elsősorban Java-zok és C++-ozok, de végülis .NET-eztem is már.
    Mutasd a teljes hozzászólást!
  • Bizonyos class-u windowkat kell sorba rendeznem a képernyőn, de az emléleti résznél elakadtam. Ablakok pozicionálására a SetWindowPos-t használom és a rendezésre váró ablakok egy IntPtr tipusú list-ben vannak.
    Az ablakoknak a lehető legjobban fedniük kell a képernyőt. Arányosan kell őket elrendezni egymáshoz képest és minden ablak egyforma méretű kell hogy legyen.
    Egy window nem lehet kisebb mint 490 pixel széles és 360 pixel magas és kb arányosan változnak az ablakok méretei.

    Hogy áljak neki,vagy ki hogy csinálná?

    Előre is köszi a segitséget!
    Mutasd a teljes hozzászólást!
abcd