DuiLib响应按钮事件
来源:互联网 发布:gif 知乎 编辑:程序博客网 时间:2024/05/17 01:05
配置方法以及需要重写的函数已经在在《初识DuiLib界面库》中已经介绍。
今天需要在之前代码的基础上加入相应Enter按钮的事件,并弹出messagebox按钮。
响应事件在Notify函数中进行处理。
#include "UIlib.h"using namespace DuiLib;# pragma comment(lib, "DuiLib_d.lib")# pragma comment(lib, "DuiLib.lib")class CDuiFrameWnd : public CWindowWnd, public INotifyUI{public: virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); } virtual void Notify(TNotifyUI& msg) { if(msg.sType == _T("click")) { if (msg.pSender->GetName() == _T("btnHello")) { ::MessageBox(NULL, _T("我是按钮"), _T("点击了按钮"), NULL); } } } virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lRes = 0; if( uMsg == WM_CREATE ) { CControlUI *pWnd = new CButtonUI;//CControlUI是duilib中所有空间的基类 pWnd->SetName(_T("btnHello")); // 设置控件的名称,这个名称用于标识每一个控件,必须 唯一,相当于MFC里面的控件ID pWnd->SetText(_T("Hello World")); // 设置文字 pWnd->SetBkColor(0xFF00FFFF); // 设置背景色 m_PaintManager.Init(m_hWnd); m_PaintManager.AttachDialog(pWnd); m_PaintManager.AddNotifier(this); // 添加控件等消息响应,这样消息就会传达到duilib的消息循环,我们可以在Notify函数里做消息处理 return lRes; } if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) { return lRes; } return __super::HandleMessage(uMsg, wParam, lParam);}protected: CPaintManagerUI m_PaintManager;};int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ CPaintManagerUI::SetInstance(hInstance); CDuiFrameWnd duiFrame; duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE); duiFrame.ShowModal(); return 0;}
运行截图如下:
这里有一个问题,当我们点击窗口的关闭按钮后,窗口被关闭了,但是MessageBox窗口依然存在。这是为什么呢?
1 0
- DuiLib响应按钮事件
- DuiLib 响应按钮事件
- 2013 duilib入门简明教程 -- 响应按钮事件(4)
- duilib响应事件
- duilib响应列表双击事件
- 响应按钮的事件
- 按钮响应回车事件
- 响应按钮的事件
- 响应 UIAlertView 按钮事件
- fragment按钮响应事件
- duilib按钮的右击事件
- DuiLib : 执行按钮事件, 模拟按钮的点击
- 监听回车响应按钮事件
- Android添加 按钮事件响应
- 按钮单击双击响应事件
- qt 按钮事件不响应
- 键盘响应页面按钮事件
- Cocostudio按钮事件不能响应
- linux shell 数组建立及使用技巧
- 蓝懿教育 传值
- QPBOC联机查询:后台响应 作弊卡 问题分析和解决方法
- 公钥,私钥,SSL
- leetcode4 Median of Two Sorted Arrays
- DuiLib响应按钮事件
- ExtJS创建Tree加筛选功能
- nyoj 353 3D dungeon 【bfs】
- 最新原生nodejs调试器的使用大全详解
- Subversion配置
- log4j JAVA的日志控制输出(共三步)
- java并发实践学习
- Linux Shell中的数组及遍历
- Matlab计算运行时间