Sdílet prostřednictvím


Přetahování obrázků ze seznamu obrázků

CImageList obsahuje funkce pro přetažení obrázku na obrazovce. Funkce přetažení přesunují obrázek hladce, v barvě a bez blikajícího kurzoru. Maskované i nepřemaskované obrázky lze přetáhnout.

Členová funkce BeginDrag zahájí operaci přetažení. Parametry zahrnují index obrázku pro přetažení a umístění horkého místa v obrázku. Aktivní bod je jeden pixel, který přetahování funkcí rozpozná jako přesné umístění obrazovky obrázku. Aplikace obvykle nastaví aktivní bod tak, aby se shodoval s horkým místem kurzoru myši. Členová funkce DragMove přesune obrázek do nového umístění.

Členová funkce DragEnter nastaví počáteční pozici obrázku přetažení v okně a nakreslí obrázek na pozici. Parametry zahrnují ukazatel na okno, ve kterém se má obrázek nakreslit, a bod, který určuje souřadnice počáteční pozice v okně. Souřadnice jsou relativní vzhledem k levému hornímu rohu okna, nikoli k oblasti klienta. Totéž platí pro všechny funkce přetahování obrázků, které přetahují souřadnice jako parametry. To znamená, že při zadávání souřadnic musíte kompenzovat šířky prvků okna, jako je ohraničení, záhlaví a řádek nabídek. Pokud při volání DragEnterzadáte popisovač okna NULL, přetahování funkcí nakreslí obrázek v kontextu zařízení přidruženém k okně plochy a souřadnice jsou relativní k levému hornímu rohu obrazovky.

DragEnter uzamkne všechny ostatní aktualizace daného okna během operace přetažení. Pokud potřebujete provést nějaký výkres během operace přetažení, například zvýraznění cíle operace přetažení, můžete dočasně skrýt přetaženou image pomocí členské funkce DragLeave . Můžete také použít členská funkce DragShowNoLock .

Volání EndDrag po dokončení přetažení obrázku

Členová funkce SetDragCursorImage vytvoří nový obrázek přetažení kombinací daného obrázku (obvykle obrázku kurzoru myši) s aktuálním obrázkem přetažení. Vzhledem k tomu, že funkce přetažení používají nový obrázek během operace přetažení, měli byste použít funkci Windows ShowCursor ke skrytí skutečného kurzoru myši po volání SetDragCursorImage. Jinak se může zdát, že systém má po dobu trvání operace přetažení dva kurzory myši.

Při volání BeginDragaplikace systém vytvoří dočasný, interní seznam imagí a zkopíruje zadaný obrázek přetažení do interního seznamu. Ukazatel na dočasný seznam obrázků přetažení můžete načíst pomocí členské funkce GetDragImage . Funkce také načte aktuální pozici přetažení a posun obrázku přetažení vzhledem k pozici přetažení.

Viz také

Používání atributu CImageList
Ovládací prvky