BUG: CB_SETTOPINDEX and CB_GETTOPINDEX Always Return Zero on MacintoshID: Q201116 
  | 
On the Macintosh, the combo box messages CB_GETTOPINDEX and CB_SETTOPINDEX fail and always return zero (0).
There are no message handlers for these messages in the combo-box window procedure in the Windows Portability Library.
Obtain a pointer to the list box portion of the combo box, and use LB_GETTOPINDEX and LB_SETTOPINDEX instead.
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.
The combo-box control is composed of an edit control and a list-box control. For additional information about combo boxes, please see the following article in the Microsoft Knowledge Base:
Q65881 INFO: The Parts of a Windows Combo Box and How They RelateOn the Intel side, the edit control is the first child of the combo box. For a simple combo box, the Macintosh has the list-box control as the first control.
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);
} 
(c) Microsoft Corporation 1999, All Rights Reserved. Contributions by Adam Kim, Microsoft Corporation.
Additional query words: Macintosh CB_GETTOPINDEX CB_SETTOPINDEX combobox listbox
Keywords          : kbcode kbMAC kbMFC kbVC kbVC400bug kbDSupport MacPrgIss 
Version           : MACINTOSH:4.0,4.0b
Platform          : MACINTOSH 
Issue type        : kbbug 
Last Reviewed: June 23, 1999