Chyba: CB_SETTOPINDEX a CB_GETTOPINDEX vždy vrátit Zero Macintosh

Překlady článku Překlady článku
ID článku: 201116 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

V systému Macintosh zprávy pole se seznamem CB_GETTOPINDEX a CB_SETTOPINDEX nezdaří a vždy vrátí nulu (0).

Příčina

Neexistují žádné rutiny zprávu pro tyto zprávy v postupu okno pole se seznamem v knihovně Windows přenositelnost.

Řešení

Získání ukazatele na seznamu části pole se seznamem a místo toho použijte LB_GETTOPINDEX a LB_SETTOPINDEX.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o chybu v produktech společnosti uvedených na začátku tohoto článku.

Další informace

Ovládací prvek pole se seznamem se skládá z ovládacího prvku pro úpravy a ovládací prvek pole seznamu. Další informace o polích se seznamem naleznete v následujícím článku databáze Microsoft Knowledge Base:
65881INFORMACE: Části systému Windows seznamem a postupy se týkají
Na straně Intel ovládacího prvku pro úpravy je první podřízený pole se seznamem. Pro jednoduché seznamem Macintosh má ovládací prvek pole seznamu jako první ovládací prvek.

Popisovač okna se seznamem lze získat GetWindow. Po získání platné úchyt pomocí zpráv LB_GETTOPINDEX a LB_SETTOPINDEX poskytuje stejné funkce jako CB_GETTOPINDEX a CB_SETTOPINDEX.

Ukázkový kód níže ukazuje MFC implementace:

Ukázkový kód


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);
}
				

Odkazy

(c) 1999 Microsoft Corporation, všechny rezervované práv. Příspěvky ADAM Jan, Microsoft Corporation.

Vlastnosti

ID článku: 201116 - Poslední aktualizace: 3. února 2014 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C++ 4.0 Cross Development Edition pro počítače Macintosh
  • Microsoft Visual C++ 4.0 Cross Development Edition pro počítače Macintosh
Klíčová slova: 
kbnosurvey kbarchive kbmt kbbug KB201116 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:201116

Dejte nám zpětnou vazbu

 

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