「VC」でOCXを作っている者です。
皆さんに質問したいことは、OCXを作る際に、この様に書いた場合(↓)
// CMyxxxxxxCtrl::CMyxxxxxxCtrl - コンストラクタ
CMyxxxxxxCtrl::CMyxxxxxxCtrl()
{
InitializeIIDs(&IID_DMyxxxxxx, &IID_DMyxxxxxxxEvents);
// TODO: この位置にコントロールのインスタンス データの初期化処理を追加してください
::SetTimer(GetSafeHwnd(),ID_TIMER,1000,NULL);
}
このSetTimerはどのタイミングで動き出すのでしょうか?(VBで)
つづきは、この様になっています(↓)
void CMyxxxxxxxxCtrl::OnTimer(UINT nIDEvent)
{
if (nIDEvent == 1)
{
KillTimer(1);
::AfxMessageBox(_T("OK!"));
SetTimer(1015, 5000, NULL);
}else{
::AfxMessageBox(_T("NG!"));
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
}
COleControl::OnTimer(nIDEvent);
}
そして、実行したところ、ノンリアクションでした。
私はまだ「VB」、「VC」を触り始めて一ヶ月も経っておりません。
ご教授お願い致します。
このように(↓)、SetTimerをべつの関数に書き込んだところ・・・
void CMyxxxxxxCtrl::OnRButtonDown(UINT nFlags, CPoint point)
{
//右のボタンがクリックされた時はスタート!!
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
::SetTimer(GetSafeHwnd(),1,1000,NULL);
COleControl::OnRButtonDown(nFlags, point);
}
無事に、SetTimerは動き出しました。
コンストラクタの意味を理解しておりませんでした。
お騒がせしました。