2009-03-10 13 views
1

MFC bir CStatusBarCtrl kullanarak ben CStatusBar içindeki her öğenin sınırlarını almak için GetItemRect kullanın. CStatusBarCtrl GetItemRect XP Manifest

Bir sorun görüyorum Ancak

şimdi exe Manifest'in XP kullanın. Doğru bir dikdörtgeni döndürmeyeceğinden, fare farenin denetimin en sağında olduğunda doğru bir şekilde tanımlamam.

GetStatusBarCtrl().SetTipText(n - 1, _T("Test")); 

bir CStatusBarCtrl oluşturulur ve bir bölme SetPaneInfo oluşturulur ve uç metni yukarıdaki gibi ayarlanmış metin görünmez fare:

sorun böyle bir yöntemle test edilebilir Sağ taraftaki panelin üzerinden.

Bu sorun

elsewhere bildirilmiştir. Ama tatmin edici bir cevabı yok.

ben bir çözüm gerekir ya çok iyi olurdu geçici.

cevap

0

Benim ilk tahminim Vista ve XP'de 'THEMES' arasındaki farklar olacaktır. Unutmayın, bir CFrameWnd kullanıyorsanız, durum çubuğunun en sağındaki son bölmenizde bir tutucu kontrolü vardır. Bu nedenle, ComCtl32.dll'deki değişiklikler bunu hesaba katabilir, böylece size daha küçük bir rect verir. Sanırım daha önce yaptığından daha küçük bir rect.Width() görüyor musun? Aynı zamanda daha küçük X ve Y hakkında konuşmuyorsunuz değil mi?

Eğer, doğru sürümü bakmanız ve uygulaması ile dağıtmak veya bildirim kullanmak hangi sürümünün yansıtmak yapmak isteyebilirsiniz varsa

...

Üzgünüm net bir kesim yok cevap, ama Temalar ... eğer doğru geri çağırmak, VC6 içinde, tutucu durum çubuğunun üstüne eklenmiş VEYA durum çubuğu görüntülemek için yeterli çekmiş beri, akla gelen tek şey

Kullanabileceğiniz bir öneri, Windows'un çalışan sürümünüzü algılamak ve işletim sistemi için kıskaç varsayımını yapmak olacaktır. Tutucu, VScroll çubuğuyla aynı boyutta olacak, bu yüzden çalışma zamanında son hücreden gelen birçok DLU'yu (veya Piksel) kaldırabilir ve buna göre metin oluşturabilirsiniz. Eve gitmem ve VC6'yı ateşleyeceğim ve burada ne söylediğine göre nasıl davranacağını görmeliyim ...

ComCtl32.dll dosyasının hangi sürümünü kullandığını görmek için Vista VM kullanıyorum varsayılan olarak yüklenir, ama benim tahminim, kavrayıcı ile başa çıkmak için bazı kodlar koydu.

tamamladıktan örnek kodu varsa, bu gerçekten Aksi takdirde, benim eski VC6 kod oluşturulan tüm araştırmaya başlamadan ve oradan gitmek zorunda ... bana da işleri kolaylaştırmak istiyoruz ...

ilginç Test, GetSystemMetrics'i bunun üzerinde bir etkisi olabileceğini düşündüğümüz parçalara çağırmak ve sistemden sisteme nasıl farklılaştıklarını görmek olacaktır. Vista'yı "Windows Classic" moduna geçirirseniz, hala aynı sonuçları görüyor musunuz?

Ayrıca, hangi makine sizin dev kutunuz? Vista mı, XP mi?

+0

Daha fazla bilgi eklenmiştir – JProgrammer

İlgili konular