másolat régió

másolat régió

Hogyan másolni egy régiót (például egy kör vagy bármilyen más formában) egy vázlatot az egyik komponens a másik vászon, azzal természetesen alatt a kör felett maradt a látható terület.

> Ugyanakkor ez természetesen alatt a kör felett maradt a látható terület.

Itt ez nem egészen világos;)

Rosszul magyarázta) elnézést.

Nézzünk egy példát. Van egy „bar” a lány vászon (egész panel) valami húzott. Van egy másik „fedél” a vászonra, ahol a másolni kívánt a kör az első, helyezze azt a központban, és nem újratelepíteni a tény, hogy láthatjuk a külső kör.

A vészhelyzetben állítsa SelectClipRgn (kerek méretre CreateEllipticRgn)

Voprosets még. Lehet könnyebb:
Lehetséges, hogy egy kör alakú panel? Ie van némi támogatást a lógó kerek „panel”, amely fel van húzva a vásznon teljes képméret köröztek téglalap, hanem annak a ténynek köszönhető, hogy a megadott szint nagyon régió (kör) többlet „cut off”.

Megkérdezhetem podtoklnut az ötletet. A WinAPI nem erős (

Elnézést a megfogalmazás, nem tudom, milyen könnyű elmagyarázni), de azt hiszem, többé-kevésbé világos.

Mi a szar, a régió nem emlékszik. )


> Mi a szar, a régió nem emlékszik. )

Oh. Van 10 kép. CombineRgn létre azonos számú régiók (például, egy tömbben). De amint én SetWindowRgn # XA0; előző régió megy feledésbe.

> A régió nem emlékszik
GetRgnData
ExtCreateRgn

Hmm, próbáljuk

Nos, tulajdonképpen lusta vagyok, így magyarázza a helyzetet.
Van skrinmeyt akik aktívan integetett a szárnyait. Az első dolog, ami eszembe jut, ha hívja a következő képfeldolgozó neki, és vágja az összes felesleges régióban. Egyszerű, de nagyon intenzív processzor. A második dolog, ami eszébe jut -, hogy hozzon létre egy tömböt, és töltse ki az összes régióban az összes kép. DE! A következő hívás a régióban a tömb, amit kap semmit, de nem a régióban. Elmentem a másik irányba. Ennek eredményeképpen a CPU terhelése nem több, mint 10%, nem képfeldolgozás, de minden alkalommal hívás CombineRgn. De GetRgnData és ExtCreateRgn valóban lehetővé teszi számunkra, hogy megoldja a problémát?

Az eredmény kész régióban:


működnek CreateRgn (index. bájt). HRGN;
var # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0;
x # XA0; # XA0;. integer;
RGN # XA0;. HRGN;
RgnDt. RGNDATA;
forma # XA0;: xform;

kezdődik
Eredmény: = CreateRectRgn (0, 0, Szélesség, magasság);
.
// Egy pár sort, hogy hozzon létre a régióban alapján a kép
GetRegionData (eredmény, sizeof (RgnDT), @RgnDt);
Eredmény: = ExtCreateRegion (@form, sizeof (RgnDt), RgnDt)
végén;

A kimenet van 0.


> És ott, látszólag keresztül canvas.pixels [] munkája. én
> Telepator jogokat?

NO. Ott, minden megy keresztül az MFT. Mivel szeretem WinAPI, az a tény, bármilyen vászon beszéd és nem lehet. Saját skrinmeyt képekkel súlya 40 kg.

Én zavarba az utolsó paraméter ExtCreateRegion - kérdezi állandó. És van egy változó van. Bár meg van írva a tanúsítványt, amely együtt működik ExtCreateRegion GetRegionData. És milyen struktúrát xform? Próbáltam helyettesíteni nulla - az eredmény is nulla. Mint RGNDT valami írva, de nem vonják vissza.

Tud valaki egy működő példa !?

> parovoZZ
Saját bejegyzést ExtCreateRgn utal a hosszú távú # XA0; Conservation régió (például csavar)
Időleges tárolására elegendő, hogy Igor tanácsos

Tehát míg az ő emlékére is „égnek”? Van valami nem működik. És a tanúsítványban meg van írva, hogy a régió lehet nevezni egynél többször.