• Duilib学习三 响应按钮


     1 #pragma once
     2 #include <UIlib.h>
     3 using namespace DuiLib;
     4 
     5 #ifdef _DEBUG
     6 #   ifdef _UNICODE
     7 #       pragma comment(lib, "DuiLib_ud.lib")
     8 #   else
     9 #       pragma comment(lib, "DuiLib_d.lib")
    10 #   endif
    11 #else
    12 #   ifdef _UNICODE
    13 #       pragma comment(lib, "DuiLib_u.lib")
    14 #   else
    15 #       pragma comment(lib, "DuiLib.lib")
    16 #   endif
    17 #endif
    18 
    19 class CDuiFrameWnd : public CWindowWnd, public INotifyUI
    20 {
    21 public:
    22     virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); }
    23     virtual void    Notify(TNotifyUI& msg) 
    24     {
    25         if(msg.sType == _T("click"))
    26         {
    27             if(msg.pSender->GetName() == _T("btnHello")) 
    28             {
    29                 ::MessageBox(NULL, _T("我是按钮"), _T("点击了按钮"), NULL);
    30             }
    31         }
    32     }
    33 
    34     virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
    35     {
    36         LRESULT lRes = 0;
    37 
    38         if( uMsg == WM_CREATE ) 
    39         {
    40             CControlUI *pWnd = new CButtonUI;
    41             pWnd->SetName(_T("btnHello"));      // 设置控件的名称,这个名称用于标识每一个控件,必须唯一,相当于MFC里面的控件ID
    42             pWnd->SetText(_T("Hello World"));   // 设置文字
    43             pWnd->SetBkColor(0xFF00FF00);       // 设置背景色
    44 
    45             m_PaintManager.Init(m_hWnd);
    46             m_PaintManager.AttachDialog(pWnd);
    47             m_PaintManager.AddNotifier(this);   // 添加控件等消息响应,这样消息就会传达到duilib的消息循环,我们可以在Notify函数里做消息处理
    48             return lRes;
    49         }
    50 
    51         if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) 
    52         {
    53             return lRes;
    54         }
    55 
    56         return __super::HandleMessage(uMsg, wParam, lParam);
    57     }
    58 
    59 protected:
    60     CPaintManagerUI m_PaintManager;
    61 };
    62 
    63 int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
    64 {
    65     CPaintManagerUI::SetInstance(hInstance);
    66 
    67     CDuiFrameWnd duiFrame;
    68     duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
    69     duiFrame.ShowModal();
    70     return 0;
    71 }




  • 相关阅读:
    UI和3D物体的堆叠响应
    UI中的事件系统EventSystem
    UI的管理
    学习笔记--2020年12月30日
    Java集合框架
    Java基本数据类型
    数据存储
    intent和手势探测
    即时消息Toast和对话框
    Android事件处理的三种方法
  • 原文地址:https://www.cnblogs.com/xiaoxiong0222/p/4158675.html
Copyright © 2020-2023  润新知