C++/CLI でWindowsFormアプリ開発な場合、マウスホイールのコールバックは、デフォルトではFormのコールバックの中にない、というか見当たらない。だからわざわざ、Form作成時に呼ばれるLoadコールバックの中で、
this->MouseWheel += gcnew System::Windows::Forms::MouseEventHandler( this, &Form1::Form1_MouseWheel);
などとして、「MouseWheelイベント」に、独自のコールバック関数のデリゲートを追加登録するなどしなくてはならない。(上の例で言えば、Form1::Form1_MouseWheelという関数を、自分で作成するのである。)
即ち、
private: System::Void Form1_MouseWheel(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { // ここが、マウスホイールのコールバック関数となります。 //System::Windows::Forms::MessageBox::Show( gcnew System::String("hi") ); }
という感じだ。。。というのが、現状、私の理解だ。
めんどくせー。でもイベントとデリゲートとか使えてるって気がしてちょっと嬉しい。でもめんどくせー。なんでフォームのコールバックに最初から入ってないんじゃーー!それにしても、WindowsFormアプリにおけるFormは奇妙だ。ヘッダーのくせに、ダブルクリックするとリソースエディタが立ち上がる。クラスビューでは出てこない。リソースビューでも出てこない。
これではMFCよりも奇妙ではないかと思ってしまう。。orz