0
Dialog
があり、DoDataExchange
にはいくつかのテキストフィールドで動作するいくつかの呼び出しがあるとしましょう。 のプロトタイプを見てみましょう:C++ - DDX_Text関数では、nIDCは一意である必要がありますか?
void AFXAPI DDX_Text(CDataExchange* pDX, int nIDC, CString& value);
私はWindowsのダイアログと、この動的なデータ交換メカニックに新たなんだと私は十分に速く答えを見つけることができます。 何かは、nIDC
は一意の値でなければならないが、実際には実際のプロジェクトでは、これは常に真実ではないことがわかります。
質問があります:私たちはいつnIDC
を持つことができますか?我々はすべきか、そうすべきではないか?
'nIDC'はコントロールを識別するために使用されるため、ダイアログ内で一意である必要がありますが、異なるダイアログ間でグローバルに一意である必要はありません。ユニークなことはどういう意味ですか? –
@ KarstenKoopあなたはちょうど私の質問に答えました:)ありがとう。 – Archont
コントロールIDは、**あなたの**コードがIDで識別する必要があるコントロールに対してのみ一意でなければなりません。これは、たとえば、MFCのデータ交換インフラストラクチャに参加するコントロールの場合です。もう1つの例はボタンコントロールで、IDはWM_COMMANDメッセージの一部として渡され、ボタンが生成されます。ただし、ウィンドウハンドルによるコントロールの識別はできません。コントロールを特定することもできません(静的コントロールは後者の種類のよく知られている例で、通常は同じ 'IDC_STATIC'が割り当てられます)。 – IInspectable