BOGUE : CB_SETTOPINDEX et CB_GETTOPINDEX toujours renvoyer zéro sur Macintosh

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

201116
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Sur Macintosh, les messages de zone de liste déroulante CB_GETTOPINDEX et CB_SETTOPINDEX échouent et renvoient toujours la valeur zéro (0).
Cause
Il n'y a aucun gestionnaires de messages pour ces messages dans la procédure de fenêtre de zone de liste modifiable dans la bibliothèque de la portabilité de Windows.
Résolution
Obtenir un pointeur vers la partie zone de liste de la zone de liste modifiable et utilisez LB_GETTOPINDEX et LB_SETTOPINDEX à la place.
Statut
Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés au début de cet article.
Plus d'informations
Le contrôle de zone de liste modifiable se compose d'un contrôle d'édition et un contrôle zone de liste. Pour plus d'informations sur les zones de liste déroulante, consultez l'article suivant dans la base de connaissances Microsoft :
65881Information : Parts d'une zone de liste déroulante Windows et comment les associer
Dans la partie Intel, le contrôle d'édition est le premier enfant de la zone de liste modifiable. Pour une zone de liste déroulante simple, le Macintosh possède le contrôle de zone de liste comme premier contrôle.

Le handle de fenêtre à la zone de liste peut être obtenu à l'aide de GetWindow. Une fois un handle valide est obtenu, à l'aide de messages LB_GETTOPINDEX et LB_SETTOPINDEX fournit les mêmes fonctionnalités que CB_GETTOPINDEX et CB_SETTOPINDEX.

L'exemple de code suivant illustre l'implémentation MFC :

Exemple de code

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);}				
Références
(c) 1999 Microsoft Corporation, tous droits réservés. Contribution ADAM Kim, Microsoft Corporation.

Zone de liste de zone de liste déroulante Macintosh CB_GETTOPINDEX CB_SETTOPINDEX

Avertissement : Cet article a été traduit de manière automatique

Propriétés

ID d'article : 201116 - Dernière mise à jour : 02/14/2014 06:02:25 - Révision : 2.0

  • Microsoft Visual C++ 4.0 Cross Development Edition for Macintosh
  • Microsoft Visual C++ 4.0 Cross Development Edition for Macintosh
  • kbnosurvey kbarchive kbmt kbbug KB201116 KbMtfr
Commentaires