OCXがインストールされていれば、そのコントロールを作成(CreateControl)していま
す。
が、そのOCX自体のイベントを使いたいのですが、
どのようにすればよいのでしょうか
イベント シンク マップを書けばよいです。
class CXXXDialog : public CDialog
{
protected:
afx_msg BOOL OnXXXXX();
DECLARE_EVENTSNINK_MAP()
};
BEGIN_EVENTSINK_MAP(CXXXDialog, CDialog)
ON_EVENT(CXXXDialog, コントロールID, イベントのDISPID, OnXXXX, VTS_NONE)
END_EVENTSINK_MAP()
BOOL CXXXDialog::OnXXXX()
{
// TODO:
return TRUE;
}
返答ありがとうございます
ダイアログリソースにOCXコントロールを貼り付けていると、
OCXがインストールされていない場合に、
画面が表示されません。
CreateControl(クラスID, WS_VISIBLE, RECT, this, NULL);
でコントロールIDをNULLに指定しているのですが、
ON_EVENT(CXXXDialog, コントロールID, イベントのDISPID, OnXXXX, VTS_NONE)
でコントロールIDはどのように指定すればよいでしょう?
> CreateControl(クラスID, WS_VISIBLE, RECT, this, NULL);
> でコントロールIDをNULLに指定しているのですが、
NULLではダメですね。
[表示]-[シンボルブラウザ]を使うかresource.hを直接編集するなりして、
他のコントロールと被らない一意なIDを追加し、それを指定しましょう。
イベントが飛んできました。
ありがとうございました。