win32 htmlayout dom操作demo
之前两篇关于win32 htmlayout博文,记载了一个实现了简单的点击按钮弹出新窗口的demo,之后实践中发现,图形界面开发,最重要的还是要实现响应用户操作,改变原有界面的功能。比如说,界面上有一个用户列表,选择其中一个名字,点击删除按键,则可以将这个名字删掉。这种类似的操作是很常见的。使界面有了动态性。
对于win32 htmlayout就是操作html的dom节点,虽然没做过C++ win32,但做java web对dom操作也算很熟悉了。
dom操作就是这样:
//************************************// 作 者: sonne// 函 数 名: OnButtonClick// 功 能: 按钮响应事件// 完 整 名: OnButtonClick// 访 问 权: public // 返回值类型: VOID// 方法限定符: //************************************void OnButtonClick(HELEMENT button){htmlayout::dom::element cBut = button;if (!wcscmp(cBut.get_attribute("id"),L"ACT")){htmlayout::dom::element root;htmlayout::dom::element name;root = htmlayout::dom::element::root_element(hwnd); name = root.get_element_by_id("NAME");name.insert(htmlayout::dom::element::create("option", L"Whoami"), 0);}if (!wcscmp(cBut.get_attribute("id"),L"DEL")){htmlayout::dom::element root;htmlayout::dom::element nameList;root = htmlayout::dom::element::root_element(hwnd); nameList = root.get_element_by_id("NAME");htmlayout::dom::element selName;selName = nameList.find_first("option:checked");selName.destroy();SetWindowText(hwnd,"NAME LIST");}if (!wcscmp(cBut.get_attribute("id"),L"EDI")){htmlayout::dom::element root;htmlayout::dom::element nameList;root = htmlayout::dom::element::root_element(hwnd); nameList = root.get_element_by_id("NAME");htmlayout::dom::element selName;selName = nameList.find_first("option:checked");selName.set_value("Iamwho");SetWindowText(hwnd,"NAME LIST");}}
实现的效果:
初始化显示为Bob,Alice,Peter三个名字。点击ACT按钮则添加一个名为Whoami的名字,选中后点击EDI按钮则将名字改为Iamwho,选中后点击DEL按钮则删除。
这就是基于dom操作动态效果实现增删改查的小demo。
github代码地址:
https://github.com/SonnAdolf/sonne_desktop_graphical_development
转载于:https://www.cnblogs.com/rixiang/p/6668068.html
win32 htmlayout dom操作demo相关推荐
- 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版]
使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版] 原理: W3C将DOM2.0模型中事件处理流程分为三个阶段: 一.事件捕获阶段: 当某个元素触发某个事件(如onclic ...
- 03.JavaScript对DOM操作
JavaScript引入方式 外部引入 在head或者body中,添加以下代码 <script type="text/javascript" src="js/dem ...
- jQuery的DOM操作
jQuery的DOM操作 前期:http://blog.csdn.net/goodshot/article/details/20202019 1 , 创建元素节点 传统的javascript方法,创建 ...
- JavaScript(五)—— Web APIs 简介/JavaScript 必须掌握的 DOM 操作 (丰富案例 + 思维导图)
本篇为 JavaScript 系列笔记第五篇,将陆续更新后续内容.参考:黑马程序员JavaScript核心教程,前端基础教程 系列笔记: JavaScript(一)-- 初识JavaScript / ...
- JavaScript和jQuery的DOM操作
1.创建元素节点 传统的javascript方法,创建元素节点 程序代码 var a = document.createElement("p"); jQuery中创建节点的方法是 ...
- 三、jQuery 中的 DOM 操作(超详细)
文章目录 前言 一. DOM 介绍 二. 查找节点 2.1查找元素节点 2.2查找属性节点 三. 创建节点 3.1.创建元素节点 3.2.创建文本节点 3.3.创建属性节点 四.插入节点 4.1 DO ...
- 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件
1.减少 HTTP 请求数量 在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信.浏览器与服务器需要经过三次握手,每次握手需要花费大量时间.而且不同浏览器对资源文件并发请求数量有限(不同浏览器 ...
- DOM操作(增删改查)详解
一.DOM操作 1.DOM概念 当网页被加载时,浏览器会创建页面的文档对象模型DOM DOM:Document Object Model 注:DOM说明 在DOM中,每个东西都是节点: 文档本身就是一 ...
- Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)
文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...
最新文章
- 单片机红绿灯电路灯有几种_LED路灯电源防雷与设计方案
- 谁是创业板的支柱?兼驳《上海证券报》
- GROUP BY 和 ORDER BY 同时使用问题
- 如何根据ABAP类的一个方法名称,反查出这个类的名称
- 设计模式系列之单例模式(java)
- 深入理解this机制系列第三篇——箭头函数
- USACO-Section1.5 Arithmetic Progressions(枚举)
- MySQL5.6优化了Order by排序limit
- Sutton 强化学习, 21 点游戏的策略蒙特卡洛值预测
- HTML5第6章上机,第6章__HTML5的表单.ppt
- 将空闲空间合并到现有分区时出现错误: 检测到下列文件系统错误,分区容量未做调整, 无效的的文件记录
- [C语言] 0.5倍速讲解世纪大战 有趣的C语言玩法
- 【竖心旁】我曾在森林里遇见过一只夜莺
- 用无线网卡做wifi热点共享网络的方法
- MP3 ID3v1 ID3v2 APEv2 标准总结
- 工具类APP的推广方式
- OpenGL之GLEW安装
- App瘦身最佳实践(分析了微信、淘宝、微博图片文件的放法)
- Workflow规则收藏
- clickhouse在风控-风险洞察领域的探索与实践
热门文章
- 收藏 | 损失函数理解汇总,结合PyTorch1.7和TensorFlow2
- 【人工智能】【深度学习】初学者如何选出最适合自己深度学习框架?
- HALCON学习之旅(七)
- java 异常 return_Java异常处理中同时有finally和return语句的执行问题
- mysql wb bbu_BBU
- windows 弹shell_Windows系统常用免费软件“红黑榜”
- 国外html游戏发展历史,17个国外游戏行业的网页设计欣赏
- 网站开启 IPv6 访问,测试是否支持 IPV6
- Android设置Alpha值实现图片渐变效果
- Docker(二十三)-Docker使用pipework配置本地网络