No.2ベストアンサー
- 回答日時:
無視するよりも削除していく方が安全です。
特にこの部分は#defineで書かれていますので、いろいろとやっていると何かの拍子に番号が重なってしまうことがあります。そうなると後で大変な思いをする羽目になってしまいます。ぐちゃぐちゃにならないうちにこまめに整理した方がいいです。しかしながら、resource.hを直接編集するのは大変ですから(どれを使用しているかこのヘッダーだけではわからないので)
「表示(V)」→「シンボルブラウザ(Y)...」
で削除するといいと思います。使用済みのものは削除できないようになっている上、イベントの削除のようにコメントアウトではなく本当に消してくれるのできれいになります。
また、resource.hを直接編集した場合は
「・・・再ロードしますか?」
というメッセージが表示されますので必ず再ロードしてください。
チェックボックスの初期状態ですが、この保存にはiniファイルを使用した方がいいと思います。iniファイルはEXEと同じ場所に保存しておくのがやりやすいです。この際にiniファイルはフルパス指定となりますが、MFCを使用する場合、EXEのフォルダの取得は
InitInstance()の中でm_pszHelpFilePathの値からファイル名をとれば簡単に取得できます。
iniファイルにする一番の利点は、丸ごとコピーすれば簡単に環境(チェックボックスの初期状態)を移行できる点にあります。また、アンインストーラを備えていなくてもファイルの削除だけでアンインストールにもなります。
この回答への補足
resource.hの件大変やってみました、今までずっと気になっていたので本当に目から鱗です、ありがとうございます。 僕にとっては20pt以上の回答でした。
iniファイルの利点は確かにコピーと削除の容易さにあるんですね、ありがとうございます。
No.1
- 回答日時:
resource.h は、VC++が勝手に作るものなので、基本的に無視して構いません。
どうしても変更したいという場合は弄っても構いませんが、整合性が
取れるようにしておきましょう。
σ(^^)の場合の整合性確認は、
#define IDC_HOGE 35000
とあったとして、IDC_HOGE が使用されていないかを確認するには、
「ファイルを検索」で「IDC_HOGE」を検索し、該当なしなら、コメントアウトします。
で、リビルドに成功すれば問題なしということで削除します。
まぁ、この手続きは面倒なので、無視してしまっても特に問題はありません。
100個のチェックボックスは3ステートですか?
2ステート(ON/OFFのみ)の場合であれば、ビット演算で
記憶することもできます。
保存先は、iniファイルでもレジストリでも、やることはどちらも大して変わりません。
iniファイルであれば、例えば、
[MyCheckBox]
0=0
1=1
2=1
3=0
...
99=1
とかやる方法もあります。
保存時は、
char key[10], state[2] = {0};
for(int i = 0; i < 100; ++i){
sprintf(key, "%d", i);
state[0] = ボタンの状態(ONなら"1", OFFなら"0");
WritePrivateProfileString("MyCheckBox", key, state, "MyApp.ini");
}
取得時は、
INT default = 0; // 初期値
UINT state;
for(int i = 0; i < 100; ++i){
sprintf(key, "%d", i);
state = GetPrivateProfileInt("MyCheckBox", key, default, "MyApp.ini");
}
とか。
この回答への補足
RAPTsong様 source付で丁寧なアドバイスありがとうございます。
resource.hをコメントアウトしていくのは安全で良さそうなので是非やってみたいと思います。
100個のチェックボックスの件は、2ステートでDBから取得したデータのON,OFFを表示しています。
具体的にはVC++6.0 SDKで開発しており、LISTVIEWの拡張のチェックボックスを使っています。
ネットワーク上のPCの情報(MCNNAME(パソコン名), IP(IP), APDX(補足))を格納したDBからMCNNAMEを取得します。
DBの情報は変更、増減するので現在は
GetPrivateProfileIntを使用し
MCNNAME=1
MCNNAME=0
MCNNAME=0
MCNNAME=0
MCNNAME=1
としてiniファイルには現在使われてないものも残っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) PC利用中に勝手に起動する窓を消し去る方法を教えて下さい。 1 2023/05/08 16:48
- 法人税 電子帳簿保存法について 1 2022/04/07 11:17
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- その他(プログラミング・Web制作) プログラムが書けません。 6 2023/01/22 22:58
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- 不動産業・賃貸業 火災保険についてです。 不動産屋にて、賃貸契約前に火災保険は個別で加入したい旨伝えたらできない、指定 1 2023/06/06 05:50
- Windows 10 Windows11 を初期状態に戻す方法について。 2 2022/11/21 20:09
- その他(悩み相談・人生相談) 自己愛性人格障害の人から親権を取れる 無料法律事務所はありますか? できれば横浜市内であると助かりま 1 2022/04/20 16:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbsからのExcelマクロ呼び出し...
-
docxをmht形式で保存したファイ...
-
CSVファイルの特定行の削除
-
FTPのgetとputの使いわけ。
-
Excel: ファイル名になぜ、[...
-
彼女の過去の恋愛に嫉妬してし...
-
C# リッチテキスト形式のファイ...
-
複数のExcelファイルにある同名...
-
自動で.xlsを閉じて指定フォル...
-
WINDOWS CMDからゴミ箱のファ...
-
5000個のtiffファイルをpdfへ変...
-
このファイルは外部のエディタ...
-
ノーツの添付ファイルの場所を...
-
iCloud for Windowsをアンイン...
-
VBA ファイル一覧を取得して全...
-
OneDrive必要なものでしょうか
-
VBAにおいて、ファイルの移...
-
エクセルのマクロについて教え...
-
EXCELVBAにて文字列にして「01...
-
フォルダ内の複数のファイルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの特定行の削除
-
vbsからのExcelマクロ呼び出し...
-
OneDrive必要なものでしょうか
-
iCloud for Windowsをアンイン...
-
Excel: ファイル名になぜ、[...
-
EXCELVBAにて文字列にして「01...
-
ファイルが移動してもリンクの...
-
彼女の過去の恋愛に嫉妬してし...
-
複数のExcelファイルにある同名...
-
VBAにおいて、ファイルの移...
-
WINDOWS CMDからゴミ箱のファ...
-
[Unity]シーンファイルの中が消...
-
FTPのgetとputの使いわけ。
-
docxをmht形式で保存したファイ...
-
エクセルのファイル:「自分」が...
-
Googleドライブについて
-
自動で.xlsを閉じて指定フォル...
-
batでファイル名を変更したい(...
-
5000個のtiffファイルをpdfへ変...
-
エクセル保存終了で一時ファイ...
おすすめ情報