Ağaç Denetimi Sürükle ve Bırak İşlemleri
Kullanıcı bir öğeyi sürüklemeye başladığında ağaç denetimi (CTreeCtrl) bir bildirim gönderir. Kullanıcı sol fare düğmesiyle TVN_BEGINDRAG bir öğeyi sürüklemeye başladığında ve kullanıcı sağ düğmeyle sürüklemeye başladığında denetim TVN_BEGINRDRAG bildirim iletisi gönderir. Ağaç denetimine TVS_DISABLEDRAGDROP stilini vererek ağaç denetiminin bu bildirimleri göndermesini engelleyebilirsiniz.
CreateDragImage üye işlevini çağırarak sürükleme işlemi sırasında görüntülenecek bir görüntü elde edebilirsiniz. Ağaç denetimi, sürüklenen öğenin etiketine göre bir sürükleme bit eşlemi oluşturur. Ardından ağaç denetimi bir görüntü listesi oluşturur, bit eşlemi ekler ve CImageList nesnesine bir işaretçi döndürür.
Öğeyi gerçekten sürükleyen kodu sağlamanız gerekir. Bu genellikle görüntü listesi işlevlerinin sürükleme özelliklerini kullanmayı ve sürükleme işlemi başladıktan sonra gönderilen WM_MOUSEMOVE ve WM_LBUTTONUP (veya WM_RBUTTONUP) iletileri işlemeyi içerir. Görüntü listesi işlevleri hakkında daha fazla bilgi için bkz. Windows SDK'sında MFC Başvurusu ve Görüntü Listeleri'ndeki CImageList. Ağaç denetim öğesini sürükleme hakkında daha fazla bilgi için, Windows SDK'sında da Ağaç Görünümü Öğesini Sürükleme bölümüne bakın.
Ağaç denetimindeki öğeler sürükle ve bırak işleminin hedefleri olacaksa, fare imlecinin hedef öğe üzerinde ne zaman olduğunu bilmeniz gerekir. HitTest üye işlevini çağırarak öğrenebilirsiniz. Fare imlecinin geçerli koordinatlarını içeren bir nokta ve tamsayı ya da TVHITTESTINFO yapısının adresini belirtirsiniz. İşlev döndürdüğünde, tamsayı veya yapı, fare imlecinin ağaç denetimine göre konumunu gösteren bir bayrak içerir. İmleç ağaç denetimindeki bir öğenin üzerindeyse, yapı öğenin tutamacını da içerir.
Durumu değere ayarlamak için SetItem üye işlevini çağırarak öğenin sürükle ve bırak işleminin TVIS_DROPHILITED
hedefi olduğunu belirtebilirsiniz. Bu duruma sahip bir öğe sürükle ve bırak hedefini belirtmek için kullanılan stilde çizilir.