CWnd::GetDSCCursor
データ ソース コントロールのデータ ソース、ユーザー名、パスワード、および SQL プロパティで定義されている基になるカーソルへのポインターを取得するには、このメンバー関数を呼び出します。
IUnknown * GetDSCCursor( );
戻り値
データ ソース コントロールによって定義されるカーソルへのポインター。MFC は、ポインターの AddRef の呼び出しを処理します。
解説
データ バインド グリッド コントロールなどの複雑なデータ バインド コントロールの ICursor のプロパティを設定するために返されたポインターを使用します。データ ソース コントロールは最初の連結コントロールがカーソルを要求するまでアクティブになりません。これによって GetDSCCursor にまたは暗黙的に MFC 連結マネージャー呼び出し明示的に発生することがあります。いずれの場合も、GetDSCCursor を呼び出すと IUnknownに返されたポインターの [リリース] を呼び出して、アクティブにするデータ ソース コントロールができます。アクティブ化によりデータ ソース コントロールは、基になるデータ ソースに接続しようとします。返されたポインターは、次のコンテキストで使用される可能性があります:
使用例
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