Step by step——WinX开发入门教程-5
2010-07-23 11:27
295 查看
利用winx的DDX机制得到,设置、得到edit控件内容
目的 利用DDX便利性,进行edit控件内容的设置和获取 原理 WTL提供了一个模板类来单独处理DDX机制,该类为: // CWinDataExchange - provides support for DDX template利用winx DDX宏处理DDX
问题 MFC的UpdateData函数,并没有指定Update哪个控件,所以MFC是把能DDX的都DDX掉吧。一个问题,对话框上有这么多的控件,怎么得到这么些控件的ID并一一的进行DDX_Text呢? 原理 Winx 提供了几个跟DDX相关的宏。如下: #define WINX_DDX_BEGIN() BEGIN_DDX_MAP(void) #define WINX_DDX_TEXT(nID, var) DDX_TEXT(nID, var) #define WINX_DDX_TEXT_LEN(nID, var, len) DDX_TEXT_LEN(nID, var, len) #define WINX_DDX_INT(nID, var) DDX_INT(nID, var) #define WINX_DDX_INT_RANGE(nID, var, min, max) DDX_INT_RANGE(nID, var, min, max) #define WINX_DDX_UINT(nID, var) DDX_UINT(nID, var) #define WINX_DDX_UINT_RANGE(nID, var, min, max) DDX_UINT_RANGE(nID, var, min, max) #define WINX_DDX_CHECK(nID, var) DDX_CHECK(nID, var) #define WINX_DDX_RADIO(nID, var) DDX_RADIO(nID, var) #define WINX_DDX_END() END_DDX_MAP() BEGIN: #define BEGIN_DDX_MAP(thisClass) / BOOL DoDataExchange(BOOL bSaveAndValidate = FALSE, UINT nCtlID = (UINT)-1) / { / bSaveAndValidate; / nCtlID; DDX_TEXT: #define DDX_TEXT(nID, var) / if(nCtlID == (UINT)-1 || nCtlID == nID) / { / if(!DDX_Text(nID, var, sizeof(var), bSaveAndValidate)) / return FALSE; / } END #define END_DDX_MAP() / return TRUE; / } 嗯,还是老一套。 什么时候需要更新数据了,就调用DoDataExchange函数就可以了。 步骤 代码如下: WINX_DDX_BEGIN() WINX_DDX_TEXT(IDC_EDIT_SRC,m_strSrc) WINX_DDX_END() void OnCmdButton1(HWND hWnd) { DoDataExchange( TRUE ); MessageBox( m_strSrc ); }用winx开发基于对话框程序总结
走到这里,基本上,用Winx开发基于对话框的程序,就比较简单了。简单总结如下: 新建一对话框资源模板,拖拉布置控件位置及设置ID。 新建一对话框类,继承于winx::ModelDialog, 在模板参数中,将对话框ID传递与资源模板关联。 消息处理 按钮事件,菜单事件,以OnCommand函数处理之,有WINX_CMDS_BEGIN宏辅助之。 系统命令,有WINX_SYSCMD_BEGIN辅助之,请照葫芦画瓢处理之。 类似的宏记录如下,请自行研究。 // Unify style of map macro, such as: // WINX_TEST_SUITE/WINX_TEST/WINX_TEST_SUITE_END; // WINX_CMDS_BEGIN/WINX_CMD/WINX_CMDS_END; // WINX_SYSCMD_BEGIN/WINX_SYSCMD/WINX_SYSCMD_END; // WINX_NOTIFY_BEGIN/WINX_NOTIFY/WINX_NOTIFY_END; // WINX_REFLECT_NOTIFY_BEGIN/WINX_REFLECT_NOTIFY/WINX_REFLECT_NOTIFY_END; 至此,则对话框控件及相关事件处理没有问题。 DDX相关,有DDX宏处理。就不再多说什么了。相关文章推荐
- Step by step——WinX开发入门教程-3
- Step by step——WinX开发入门教程-4
- Step by step——WinX开发入门教程-6
- Step by step——WinX开发入门教程-1
- Step by step——WinX开发入门教程-2
- 转载:iptables入门教程--设置静态防火墙( step by step)
- iptables入门教程--设置静态防火墙( step by step)
- iptables入门教程--设置静态防火墙(step by step)
- Step by Step 真正从零开始,TensorFlow详细安装入门图文教程!帮你完成那个最难的从0到1
- [分享]钛极OS(TiJOS) 应用开发教程Step by Step [强烈推荐]
- iptables入门教程--设置静态防火墙( step by step)
- iptables入门教程--设置静态防火墙( step by step)
- FLEX ActionScript 游戏开发教程之[贪吃蛇]Step By Step
- JAVA微信开发教程入门篇 -01 开发环境搭建
- [置顶] 百度地图JavaScript开发入门教程
- 独立2D游戏开发工具GGELUA入门教程
- 微信开发入门教程
- VS2010上DB2数据库开发笔记(WINDOWS平台)step by step:
- Spring入门教程:通过MyEclipse开发第一个Spring项目