ボタンイベントに応答チュートリアルをはじめ4.簡潔なガイドduilib duilib

Hello Worldのは、チュートリアル、このようなコードがあります。CControlUI * PWND =新しいCButtonUIは、つまり、実際には、その全域に緑色の背景領域はボタンです。(ダウンここでは簡単に、CControlUIは、すべてのコントロールの基本クラスduilibあるボタンやCButtonUIがクラスで、より多くのコントロールは、後のチュートリアルで一つずつ紹介します。)
    それでは、どのようにメッセージボタンをクリックに反応するんですか?
    私たちはいくつかを必要とします手順:
    1は、関数呼び出しメッセージAddNotifierはduilibメッセージループ追加
    制御ボタンID(SetNameメソッド関数)のユニークなセットに、2
    内部通知メッセージ処理機能ボタンのクリックで、3。
    コードは以下の通りであります:

  1. クラスCDuiFrameWnd:公共CWindowWnd、公共INotifyUI
  2. {
  3. パブリック:
  4.     仮想LPCTSTR GetWindowClassName機能()constは{戻り_T( "DUIMainFrame")。}
  5.     仮想ボイドは通知(TNotifyUI&MSG) 
  6.     {
  7.         もし(msg.sType == _T( "クリック"))
  8.         {
  9.             もし(msg.pSender->関連項目GetName()== _T( "btnHello")) 
  10.             {
  11.                 ::メッセージボックス(NULL、_T( "私はボタンだ")、_T() "ボタンをクリックして"、NULL);
  12.             }
  13.         }
  14.     }
  15.     仮想LRESULTのhandleMessage(UINT uMsg、WPARAM wParamに、LPARAM lParamに)
  16.     {
  17.         LRESULT LRES = 0。
  18.         もし(uMsg == WM_CREATE) 
  19.         {
  20.             CControlUI * PWND =新しいCButtonUI。
  21.             pWnd-> SetNameメソッド(_T(「btnHello」)); //コントロールの名前を設定し、各コントロールを識別するために使用される名前は、一意である必要があり、MFC制御IDに対応
  22.             pWnd->のsetText(_T( "Hello World" の)); //テキストを設定
  23.             pWnd-> SETBKCOLOR(0xFF00FF00); //背景色を設定
  24.             m_PaintManager.Init(m_hWndを)。
  25.             m_PaintManager.AttachDialog(PWND)。
  26.             m_PaintManager.AddNotifier(この); //メッセージの応答コントロールを追加するなど、私たちは通知メッセージ処理機能で行うことができますメッセージループduilibにメッセージを伝えます
  27.             LRESを返します。
  28.         }
  29.         もし(m_PaintManager.MessageHandler(uMsg、wParamに、lParamに、LRES)) 
  30.         {
  31.             LRESを返します。
  32.         }
  33.         __super返す::のhandleMessage(uMsg、wParamに、lParamに);
  34.     }
  35. 保護されました:
  36.     CPaintManagerUI m_PaintManager;
  37. }。
コードをコピー


図に示す実行結果:

おすすめ

転載: www.cnblogs.com/blogpro/p/11427042.html