斉藤@ISBです。


>関田@in札幌 です。
>
各メニューアイテムとの対応付けはどのようにすれば良いのでしょうか?
>

AppendMenu や InsertMenu 時に渡すコマンドIDを元に判定
されてはどうでしょう?

例えば、map 等にコマンドIDと抽象ベースクラスのポインタを
AppendMenu や InsertMenu 時に格納し、OnCommand等で
取り出して、関数を実行するというのは駄目でしょうか?

ただし、この方法だと処理分の派生クラスが必要なので、
クラス数が増えてしまうと言う難点が...

例)

class CItem
{
public:
 virtual void Execute() = 0;
}

class CManyItem : CItem
{
public:
 virtual void Execute()
 {
  // 実行したい処理を記述
 }
}

BOOL CWindow::OnComannd(...)
{
 CItem* pcItem;
 if ((pcItem = m_cpMenu->Find(wParam/*コマンドID*/)) != NULL)
 {
  pcItem->Execute(); // 派生クラスでオーバーライド
 }
}

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)アイ・エス・ビー 府中システムセンター
斉藤 貴博 E-Mail:s...@fuchu.isb.co.jp
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/