0

列の順序を保存するために、このCSettingsStoreクラスを使用して、レジストリとの間で整数の配列を保存および復元することを考えていました (私が使用CListCtrl::GetColumnOrderArray()CListCtrl::SetColumnOrderArray()、生成および設定する配列)。しかし、それが現実的に可能かどうか、またはどのレジストリ データ型を使用すればよいかわかりません ( DWORD? ints を文字列配列に詰め込み、複数文字列を使用しますか?)。また、キーを開くには文字列CSettingsStoreパスが必要ですが、 while は を返します。そのため、自分のアプリで使用する方法さえわかりません。GetAppRegistryKey()HKEYCSettingsStore

3 つの質問があります。

  1. このアプローチは、列情報の読み込みと保存に適していますか? それとも、明らかに簡単な解決策がありますか?
  2. 列順序配列をレジストリに格納するには、どのデータ型を使用すればよいですか?
  3. HKEY値をに変換するにはどうすればよいCStringですか? それとも、アプリのレジストリ キーを検索してハードコーディングする必要がありますか?
4

1 に答える 1

0

私の推奨事項は、列数とインデックス値をコンマで区切られた文字列としてフォーマットし(のよう5, 1, 3, 4, 2, 0に、最初の数字は列数です)、次のようにレジストリに保存するREG_SZことです

AfxGetApp()->WriteProfileString(_T("Settings\\<ListControlName>"), _T("ColumnOrder"), sFormattedString);

またはストレート API関数をGetProfileString()使用して文字列をロードし、使用して値を取得できます。CStringT::Tokenize()strtok_s()

"Settings\\<ListControlName>"たとえば、並べ替え順など、各 ListControl にさらに多くの値を格納する必要がある場合に使用しました。それ以外の場合は、レジストリ セクションを 1 つだけ呼び出して、値の名前として"Settings\\ColumnOrder"使用できます。<ListControlName>

于 2013-08-21T11:34:39.673 に答える