次の方法で共有


CWnd::GetDSCCursor

更新 : 2007 年 11 月

データ ソース コントロールの DataSource、UserName、Password、および SQL プロパティで (二次的に) 定義されているカーソルへのポインタを取得するには、このメンバ関数を呼び出します。

IUnknown * GetDSCCursor( );

戻り値

データ ソース コントロールによって定義されているカーソルへのポインタ。ポインタの AddRef 呼び出しは、MFC が行います。

解説

戻り値のポインタは、データ連結グリッド コントロールのような複雑なデータ連結コントロールの ICursor プロパティを設定するために使用します。データ ソース コントロールは、連結コントロールがカーソルを最初に要求するまで、アクティブになることはありません。GetDSCCursor の呼び出しによる明示的な方法、または MFC バインディング マネージャによる暗黙的な方法によって、アクティブになります。どちらの場合でも、GetDSCCursor を呼び出して、戻り値の IUnknown へのポインタで Release を呼び出すことによって、データ ソース コントロールを強制的にアクティブにできます。アクティブになると、データ ソース コントロールはデータ ソースに接続しようと試みます。戻り値のポインタは、次のように使用されます。

使用例

BOOL CMyDlg::OnInitDialog()
{


...


// Find the child controls on the dialog
HRESULT hr = E_FAIL;
CWnd* pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd* pListWnd = GetDlgItem(IDC_DBLIST1);
IUnknown* punkList = pListWnd->GetControlUnknown();
IDBList* pList = NULL;

if (NULL != punkList)
{
   hr = punkList->QueryInterface(__uuidof(IDBList), (void**)&pList);
}

if (SUCCEEDED(hr))
{
   // Tell the MFC binding manager that we are
   // binding DISPID 3 to the data-source control.
   pListWnd->BindProperty(0x3, pDSC);

   // Tell the listbox which field to expose as its bound column
   pList->put_BoundColumn(_T("ContactFirstName"));

   // Tell the listbox which cursor and column to populate its list from
   pList->put_ListField(_T("ContactFirstName"));

   IUnknown* punkCursor = pDSC->GetDSCCursor();
   if (NULL != punkCursor)
   {
      punkCursor->Release();
   }

   pList->Release();


...


    return TRUE;
}

必要条件

ヘッダー : afxwin.h

参照

参照

CWnd クラス

階層図

CWnd::BindDefaultProperty

CWnd::BindProperty

その他の技術情報

CWnd のメンバ