Hata: CB_SETTOPINDEX ve CB_GETTOPINDEX her zaman sıfır Macintosh üzerinde iade

Makale çevirileri Makale çevirileri
Makale numarası: 201116 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Belirtiler

Macintosh'ta, birleşik giriş kutusu iletileri CB_GETTOPINDEX ve CB_SETTOPINDEX başarısız ve her zaman sıfır (0) döndürür.

Neden

Bu iletiler <a0>Windows</a0> taşıma Kitaplığı'nda <a1>birleşik giriş kutusu</a1> penceresinde yordamdaki için hiçbir ileti işleyicileri vardır.

Çözüm

Birleşik giriş kutusunun liste kutusu bölümünde bir işaretçi edinmek ve LB_GETTOPINDEX ve LB_SETTOPINDEX kullanın.

Durum

Microsoft, bunun bu makalenin başında listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Daha fazla bilgi

Açılan kutu denetimi, bir düzenleme denetimi ve bir liste kutusu denetimi oluşur. Birleşik giriş kutuları hakkında ek bilgi için lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
65881Windows bir açılan kutu parçalarını BILGI: Ve kullanıcılar nasıl ilişkilendirin
ıntel tarafında, açılan kutunun ilk alt düzenleme denetimi var. Basit bir birleşik giriş kutusu için ilk denetim Macintosh liste kutusu denetimi vardır.

Liste kutusuna pencere tanıtıcısı GetWindow kullanılarak elde edilebilir. Geçerli bir tanıtıcı alındıktan sonra LB_GETTOPINDEX ve LB_SETTOPINDEX iletileri kullanılarak CB_GETTOPINDEX ve CB_SETTOPINDEX aynı işlevleri sağlar.

Aşağıdaki örnek kod, MFC uygulaması gösterilmiştir:

Örnek kod


class CCtrlsView : public CFormView
{
public:
   CComboBox   m_comboindex;
   int      m_currentIndex;
#ifdef _MAC
   CListBox m_comboList;
#endif
...
};

void CCtrlsView::OnInitialUpdate()
{
   CFormView::OnInitialUpdate();

#ifdef _MAC
   // Obtain pointer to combo's list box.
   HWND hComboList = m_comboindex.GetWindow(GW_CHILD)->m_hWnd;
   ASSERT(hComboList);

   // Verify class name.
   char className[50];
   GetClassName(hComboList, className, 50);
   ASSERT(lstrcmp(className, "ComboLBox") == 0);

   // Subclass to use CListBox.
   m_comboList.SubclassWindow(hComboList);
#endif
...
}

// A simple combo box with "set" and "get" buttons using
// the values from an edit control.
void CCtrlsView::OnSetindex()
{
   UpdateData(TRUE);
#ifndef _MAC
   m_comboindex.SetTopIndex(m_currentIndex);
#else
   m_comboList.SetTopIndex(m_currentIndex);
#endif
}

void CCtrlsView::OnGetindex()
{
#ifndef _MAC
   m_currentIndex = m_comboindex.GetTopIndex();
#else
   m_currentIndex = m_comboList.GetTopIndex();
#endif
   UpdateData(FALSE);
}
				

Referanslar

(c) Microsoft Corporation 1999, tüm hakları saklıdır. Katkıyı Gamze Can, Microsoft Corporation.

Özellikler

Makale numarası: 201116 - Last Review: 5 Şubat 2014 Çarşamba - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 4.0 Cross Development Edition for Macintosh
  • Microsoft Visual C++ 4.0 Cross Development Edition for Macintosh
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbbug KB201116 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:201116

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com