afx_msg BOOL OnDSCNotify (DSCSTATE nState, DSCREASON nReason, BOOL pBool );
戻り値
NReasonとnStateによって表される操作を処理した場合TRUEを返します。それ以外の場合はFALSEを返します。
パラメーター
nState
「解説」で記載されている、 DSCSTATE列挙子で、発見、名前付き定数の 1 つ。
nReason
「解説」で記載されている、 DSCREASON列挙子で、発見、名前付き定数の 1 つ。
pBool
NStateとnReasonによって表される操作を続けるかどうかを示す、ブール型の答え。
解説
このシンク通知は、データ ソース コントロールのバインド先のコントロールを変更または基になるカーソルを変更しようとするときに、データ ソース コントロールを起動するイベントに応答して呼び出されます。それを使用して、理由 (nReason) と、データ ソース コントロールによって生成された状態 (nState) をトラップします。状態と理由のすべての組み合わせは、既定で許可されます。状態とは、アプリケーションに重要であり、 TRUEまたはFALSEを返す理由をテストするには、コードを記述します。
OnDSCNotifyを使用するには、シンク マップとヘッダーでシンク通知は次のとおり、シンクの通知を受信したいクラスのハンドラーを宣言します。:
cMyDlg クラス: パブリック CDialog{...DECLARE_EVENTSINK_MAP()BOOL OnDSCNotify(DSCSTATE nState,DSCREASON nReason、BOOL ※ pBool);...}
あなたのクラスの実装、シンク マップを定義しは次のように、イベントを受信する関数を指定:
BEGIN_EVENTSINK_MAP (CMyDlg、CDialog)ON_DSCNOTIFY (CMyDlg、IDC_RDCCTRL1、OnDSCNotify)END_EVENTSINK_MAP()
データ ソース コントロール内の次のイベントが発生した場合、通知のコールバック関数は、 OnDSCNotifyの実装が呼び出されます:
enum DSCREASON{dscNoReason = 0、dscClose、dscCommit、dscDelete、dscEdit、dscInsert、dscModify、dscMove}
それも複数回ごと、次の状態には:
enum DSCSTATE{dscNoState = 0、dscOKToDo、dscCancelled、dscSyncBefore、dscAboutToDo、dscFailedToDo、dscSyncAfter、dscDidEvent}
複数の呼び出しでは別の回では、イベントをトラップできます。たとえば、イベントは通常、カーソルの状態の変更への応答で、コントロールによって生成されるので、まず最初に、データ ソース コントロールを行いますそれ実際にその操作を実行してもよいかを求めるイベントを発生させるです。したがって、 dscOKToDo状態の理由。イベントは、データ ソース コントロールは、 dscSyncBefore状態には、移動する (データ コントロール、アプリケーションなど) のイベントを監視するすべてのクライアントを受け入れる場合は一度にすべての未処理データ、必要に応じてフラッシュされます。たとえば、編集フィールドの内容が変更されている場合は、変更がカーソルにコミットされます。このイベントの後に、データ ソース コントロール、 dscAboutToDoとdscSyncAfterの状態に移動し、最後にdscDidEvent状態に。さらに、データ ソース コントロールからの通知をキャッチする機会を提供するこれら。
CWnd の概要|nbsp;クラス メンバー |階層図(&N)
参照特価;CWnd::GetDSCCursor、 CWnd::BindDefaultProperty、 CWnd::BindProperty(&N)