In-Place Araç İpuçları Nasıl Uygulanır
Yerinde araç ipuçları, kırpılmış nesnelerin metin dizelerini görüntülemek amacıyla kullanılır. Bir örnek için bkz. Araç İpucu Denetimleri Hakkında.
Sıradan ve yerinde araç ipuçları arasındaki fark konumlandırma şeklidir. Varsayılan olarak, fare işaretçisi kendisiyle ilişkilendirilmiş araç ipucu olan bir bölgenin üzerine geldiğinde, araç ipucu bölgeye bitişik olarak görüntülenir. Ancak araç ipuçları pencerelerdir ve SetWindowPosçağrılarak istediğiniz yere konumlandırılabilir. Bir araç ipucunu yerinde oluşturmak, araç ipucu penceresini metin dizisinin üstüne yerleştirecek şekilde konumlandırmaktır.
Bilmeniz gerekenler
Teknolojileri
Önkoşullar
- C/C++
- Windows Kullanıcı Arayüzü Programlama
Talimatlar
In-Place Araç İpucu Konumlandırma
Yerinde bir araç ipucu konumlandırırken üç dikdörtgeni takip etmeniz gerekir.
- Tam etiket metnini çevreleyen dikdörtgen.
- Araç ipucu metnini çevreleyen dikdörtgen. Araç ipucu metni, tam etiket metniyle aynıdır ve normalde aynı boyutta ve yazı tipindedir. Bu nedenle iki metin dikdörtgeni genellikle aynı boyutta olur.
- Araç ipucu penceresi dikdörtgeni. Bu dikdörtgen, içine aldığı tooltip metin dikdörtgenine göre biraz daha büyüktür.
Üç dikdörtgen şematik olarak aşağıdaki çizimde gösterilmiştir. Etiket metninin gizli kısmı gri bir arka planla gösterilir.
Yerinde araç ipucu oluşturmak için, araç ipucu metin dikdörtgenini etiket metin dikdörtgeninin üzerine yerleştirecek şekilde konumlandırmanız gerekir. İki dikdörtgeni hizalama yordamı nispeten basittir:
- Etiket metni dikdörtgenini tanımlayın.
- Araç ipucu penceresini, araç ipucu metin dikdörtgeninin etiket metni dikdörtgenini kaplaması için konumlandırın.
Uygulamada, iki metin dikdörtgeninin sol üst köşesini hizalamak genellikle yeterlidir. Araç ipucu metin dikdörtgeninin etiket metin dikdörtgeniyle tam olarak eşleşecek şekilde yeniden boyutlandırılması, araç ipucu görüntüsünde sorunlara neden olabilir.
Bu basit düzendeki sorun, araç ipucu metin dikdörtgenini doğrudan konumlandıramamanızdır. Bunun yerine, iki metin dikdörtgeninin köşelerinin çakışması için araç ipucu penceresi dikdörtgenini etiket metin dikdörtgeninin hemen üstünde ve solunda konumlandırmanız gerekir. Başka bir deyişle, araç ipucu penceresi dikdörtgeni ile içinde yer alan metin dikdörtgeni arasındaki farkı bilmeniz gerekir. Genel olarak, bu uzaklığı belirlemenin basit bir yolu yoktur.
In-Place Araç İpuçlarını Uygula
Aşağıdaki kod parçası, yerinde bir araç ipucu görüntülemek için bir TTN_SHOW işleyicisinde TTM_ADJUSTRECT iletisinin nasıl kullanılacağını gösterir. Uygulamanız, etiket metninin kesildiğini özel fMyStringIsTruncated değişkeni TRUEolarak ayarlayarak gösterir. İşleyici, etiket metni dikdörtgenini almak için GetMyItemRectadlı uygulama tanımlı bir işlevi çağırır. Bu dikdörtgen, ilgili pencere dikdörtgenini döndüren TTM_ADJUSTRECTile araç ipucu denetimine geçirilir. SetWindowPos, etiketin üzerine araç ipucunu yerleştirmek için çağrılır.
case TTN_SHOW:
if (fMyStringIsTruncated)
{
RECT rc;
GetMyItemRect(&rc);
SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
SetWindowPos(hwndToolTip, NULL, rc.left, rc.top, 0, 0,
SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}
Bu örnek araç ipucunun boyutunu değiştirmez, yalnızca konumunu değiştirir. İki metin dikdörtgeni sol üst köşelerine hizalanır, ancak aynı boyutlarda olması gerekmez. Pratikte fark genellikle küçüktür ve bu yaklaşım çoğu amaç için önerilir. İlke olarak, araç ipucunu yeniden boyutlandırmak ve konumlandırmak için SetWindowPos kullanabilirsiniz ancak bu, öngörülemeyen sonuçlara yol açabilir.
Açıklamalar
sürüm 5.80 yaygın denetimler, TTM_ADJUSTRECTyeni bir ileti eklenerek yerinde araç ipuçlarının kullanımını kolaylaştırır. Bu iletiyi, araç ipucunun üzerine gelmesini istediğiniz etiket metin dikdörtgeninin koordinatlarıyla gönderin ve uygun şekilde yerleştirilmiş bir araç ipucu penceresi dikdörtgeninin koordinatlarını döndürür.
İlgili konular