▼ じぇぷろさん
>全部文字列でもいいんですが、それだとネーミングに苦労しそうなので。
こういうのでしょうか?
HLP_A001, HLP_A002, ... 総合情報(0番台)
HLP_F001, HLP_F002, ... ファイルメニュー(100番台)
HLP_E001, HLP_E002, ... 編集メニュー(200番台)
HLP_M001, HLP_M002, ... 移動メニュー(300番台)
>系統ごと移動や削除することもあり得ますし。
例えば、
・検索メニューの前に新たなメニュー系列を追加する場合は
600番台以降を繰り下げるのでなく、1000番台、1100番台...
と割り当てていく。
・選択メニューを廃止した場合は400番台を欠番にする。
・ファイルメニューに項目を追加する場合は、
#define HLP_F001 101 //ファイルメニューその1
#define HLP_F002 102 //ファイルメニューその2
#define HLP_F003 103 //ファイルメニューその3
↓
#define HLP_F001 101 //ファイルメニューその1
#define HLP_F002 102 //ファイルメニューその2
#define HLP_F004 104 // <<--この位置にメニュー追加
#define HLP_F003 103 //ファイルメニューその3
ヘルプのトピック番号とページ並び順は独立しているので、念のため。
トピック番号のリナンバリング自体はユーザ側に何のメリットもないのと、
ヘルプとexeは極力独立に更新したいというのが主旨です。
(exeのソースを別の人が修正している間も、ヘルプは独立して更新したい。)
>> の部分が、現在は数値の決め打ちになっているので、sakura.hhの定義を
>> 参照するよう変更しておけば、次回から自動的に連動するようになりますね。(^_^;)
補足です。
//CEditWnd.CPPをこんなふうに修正
#include "..\hlp\sakura.hh" //sakura.hhのありかを指定
~中略~
/* 機能IDに対応するメニューコンテキスト番号を返す */
int CEditWnd::FuncID_To_HelpContextID( int nFuncID )
{
~略~
//case F_FILENEW: return 25; //新規作成 元の表記
case F_FILENEW: return HLP_F001; //新規作成 修正後の表記(sakuar.hhで定義された値を使用)
~略~
}
#元のコメントの「メニューコンテキスト番号」は正しくは
#ヘルプコンテキスト番号ですね。
実際の手順としては、
1)HLP000025, HLP000015, HLP000020...を HLP_F001, HLP_F002, HLP_F003, ...にReplace。
HLP_F001, HLP_F002, ...に元の番号を割り当てる。
(sakuar.hhおよびsakura.rtfの修正)
2)CEditWnd.CPP を修正(sakuar.hhで定義された値を使用)
→この時点では下位互換が保たれている
3)HLP_F001, HLP_F002, ...に新しい番号(100番台)を割り当てる
→この時点でヘルプとexeを同時にアップデート