Duilib学习笔记《05》— 消息响应处理

Duilib学习笔记《04》中已经知道了如何将窗体显示出来,而如何处理窗体上的事件、消息呢?

一. 系统消息

窗体显示的时候我们就已经说了,窗体是继承CWindowWnd类的,对于窗体的部分消息的处理,需要重载该类的LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 函数。在显示窗体部分我们创建窗体WM_CREATE消息以及屏蔽标题栏WM_NCACTIVATE、WM_NCCALCSIZE、WM_NCPAINT等消息 都是在HandleMessage中进行处理:

LRESULT CMainWndDlg::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam )
{
	LRESULT lRes = 0;
	BOOL bHandled = TRUE;

	switch( uMsg ) 
	{
	case WM_CREATE:        lRes = OnCreate(uMsg, wParam, lParam, bHandled);	break;
	case WM_NCACTIVATE:    lRes = OnNcActivate(uMsg, wParam, lParam, bHandled);	break;
	case WM_NCCALCSIZE:	   lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled);	break;
	case WM_NCPAINT:       lRes = OnNcPaint(uMsg, wParam, lParam, bHandled); break;
	case WM_NCHITTEST:	   lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled); break;
	case WM_CLOSE:		   lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
	case WM_DESTROY:    
### 关于 Duilib 的学习教程和笔记 #### 杜伊布简介 杜伊布(DuiLib)是一个基于 C++ 开发的小巧而强大的 UI 库,适用于 Windows 平台的应用程序开发。该库不仅提供了丰富的控件支持,还允许开发者通过 XML 文件定义界面布局并实现自定义样式[^2]。 #### 初步了解总体设计 从 Google Code 上获取到的 DuiLib 工程中包含了详细的总体设计方案文档以及示例项目,这些资源对于初次接触此框架的人来说非常有价值。通过对这些材料的研究可以获得对整个系统的宏观理解,并为进一步深入研究打下良好基础[^1]。 #### 实践案例分析 具体实例展示了如何在一个应用程序内部集成 Win32 控件与纯 DuiLib 构建出来的用户界面相结合的方式工作。这种混合模式使得可以在保持现有应用结构不变的情况下逐步引入新的图形化组件[^4]。 ```cpp // 创建一个简单的按钮点击事件处理函数 void OnClick(CControlUI* pSender) { ::MessageBox(0, _T("Button Clicked!"), NULL, MB_OK); } ``` 为了更好地掌握 DuiLib,在实际操作过程中应当注重以下几个方面: - **熟悉官方文档**:仔细阅读官方提供的 API 文档和技术手册。 - **参考开源项目**:查看其他开发者利用 DuiLib 完成的作品可以帮助加深理解和激发创意灵感。 - **编写测试代码**:尝试模仿一些基本的功能模块来练习使用这个工具包中的不同特性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值