Erro: CB_SETTOPINDEX e CB_GETTOPINDEX sempre retornam zero em Macintosh

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 201116
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
No Macintosh, as mensagens de caixa de combinação CB_GETTOPINDEX e CB_SETTOPINDEX falharem e sempre retornará zero (0).
Causa
Não há nenhum manipulador de mensagem para essas mensagens no procedimento de janela caixa de combinação na biblioteca de portabilidade do Windows.
Resolução
Obtenha um ponteiro para a parte caixa de listagem da caixa de combinação e em vez disso use LB_GETTOPINDEX e LB_SETTOPINDEX.
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.
Mais Informações
O controle da caixa de combinação é composto de um controle de edição e um controle de caixa de listagem. Para obter informações adicionais sobre caixas de combinação, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
65881INFO: As partes de uma caixa de combinação do Windows e como eles se relacionam com
No lado Intel, o controle de edição é o primeiro filho da caixa de combinação. Para uma caixa de combinação simples, o Macintosh tem o controle de caixa de listagem como o primeiro controle.

O identificador de janela para a caixa de listagem pode ser obtido usando GetWindow. Depois que um identificador válido é obtido, usando as mensagens LB_GETTOPINDEX e LB_SETTOPINDEX fornece a mesma funcionalidade que CB_GETTOPINDEX e CB_SETTOPINDEX.

O código de exemplo abaixo mostra a implementação de MFC:

Código de exemplo

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);}				
Referências
(c) 1999 Microsoft Corporation, todos os direitos reservados. Contribuições de ADAM Kim, Microsoft Corporation.

Caixa de listagem do Macintosh CB_GETTOPINDEX CB_SETTOPINDEX caixa de combinação

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 201116 - Última Revisão: 10/11/2013 20:42:45 - Revisão: 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 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)