0

アプリケーションでは、ツリーで選択されたアイテムのみを処理する必要があります。Dailog に追加されたプロパティ シートで MFC CTreeCtrl を使用しています。ツリーにはフォルダーのリストが表示され、ユーザーはいくつかを選択し、ユーザーが [OK] を押すと、フォルダーを処理する必要があります。SetItemData を使用してフォルダー情報を保存します。他のすべては正常に動作しています。問題は、ユーザーが [OK] を押すと、CTreeCtrl 変数が null になるため、GetItemData を使用できないことです。ダイアログを閉じた後でも変数を使用する方法はありますか? どんな助けでも大歓迎です。

4

1 に答える 1

1

ウィンドウが破棄されるときに存在する別の変数に情報を転送する必要があります。フォルダのリストについては、astd::vector<CString>が適切なソリューションです。

ダイアログ内で、ユーザーが [OK] を押したら、ツリーを調べてフォルダー パスをベクターにコピーします。

ダイアログの外では、コードは次のようになります。

CMyDlg dlg(this);
if(dlg.DoModal() == IDOK)
{
    // Information is in dlg.m_vecFolders available
}
于 2011-12-01T12:47:57.877 に答える