注意: CB_SETTOPINDEX 和 CB_GETTOPINDEX 永遠傳回零在 Macintosh 上

文章翻譯 文章翻譯
文章編號: 201116 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

徵狀

在 Macintosh 上下拉式方塊訊息 CB_GETTOPINDEX 和 CB_SETTOPINDEX 失敗,並永遠傳回零 (0)。

發生的原因

沒有訊息處理常式的下拉式方塊視窗程序,Windows 流通程式庫中的這些訊息。

解決方案

取得下拉式清單] 方塊中清單方塊部分的指標,而使用 LB_GETTOPINDEX 和 LB_SETTOPINDEX。

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的有錯誤。

其他相關資訊

下拉式方塊控制項是由編輯控制項和清單方塊控制項所組成。取得更多資訊有關下拉式方塊請參閱下列的 「 Microsoft 知識庫 」 中的文件:
65881Windows 下拉式方塊以及其如何關聯的部分資訊:
Intel 一邊編輯控制項會是組合方塊的第一個子系。 簡單的下拉式方塊的 Macintosh 有第一個控制項清單方塊控制項。

您可以使用 GetWindow 取得視窗控制代碼至清單方塊。一旦取得有效的控制代碼使用 LB_GETTOPINDEX 和 LB_SETTOPINDEX 訊息會提供與 CB_GETTOPINDEX 和 CB_SETTOPINDEX 相同的功能。

下列範例程式碼顯示 MFC 實作:

範例程式碼


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,保留所有的權限。由 Adam 金,Microsoft Corporation 的貢獻。

屬性

文章編號: 201116 - 上次校閱: 2013年10月11日 - 版次: 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 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:201116
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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