之前两篇关于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相关推荐

  1. 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版]

    使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版] 原理: W3C将DOM2.0模型中事件处理流程分为三个阶段: 一.事件捕获阶段: 当某个元素触发某个事件(如onclic ...

  2. 03.JavaScript对DOM操作

    JavaScript引入方式 外部引入 在head或者body中,添加以下代码 <script type="text/javascript" src="js/dem ...

  3. jQuery的DOM操作

    jQuery的DOM操作 前期:http://blog.csdn.net/goodshot/article/details/20202019 1 , 创建元素节点 传统的javascript方法,创建 ...

  4. JavaScript(五)—— Web APIs 简介/JavaScript 必须掌握的 DOM 操作 (丰富案例 + 思维导图)

    本篇为 JavaScript 系列笔记第五篇,将陆续更新后续内容.参考:黑马程序员JavaScript核心教程,前端基础教程 系列笔记: JavaScript(一)-- 初识JavaScript / ...

  5. JavaScript和jQuery的DOM操作

    1.创建元素节点 传统的javascript方法,创建元素节点 程序代码 var a  = document.createElement("p"); jQuery中创建节点的方法是 ...

  6. 三、jQuery 中的 DOM 操作(超详细)

    文章目录 前言 一. DOM 介绍 二. 查找节点 2.1查找元素节点 2.2查找属性节点 三. 创建节点 3.1.创建元素节点 3.2.创建文本节点 3.3.创建属性节点 四.插入节点 4.1 DO ...

  7. 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件

    1.减少 HTTP 请求数量 在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信.浏览器与服务器需要经过三次握手,每次握手需要花费大量时间.而且不同浏览器对资源文件并发请求数量有限(不同浏览器 ...

  8. DOM操作(增删改查)详解

    一.DOM操作 1.DOM概念 当网页被加载时,浏览器会创建页面的文档对象模型DOM DOM:Document Object Model 注:DOM说明 在DOM中,每个东西都是节点: 文档本身就是一 ...

  9. Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)

    文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...

最新文章

  1. 单片机红绿灯电路灯有几种_LED路灯电源防雷与设计方案
  2. 谁是创业板的支柱?兼驳《上海证券报》
  3. GROUP BY 和 ORDER BY 同时使用问题
  4. 如何根据ABAP类的一个方法名称,反查出这个类的名称
  5. 设计模式系列之单例模式(java)
  6. 深入理解this机制系列第三篇——箭头函数
  7. USACO-Section1.5 Arithmetic Progressions(枚举)
  8. MySQL5.6优化了Order by排序limit
  9. Sutton 强化学习, 21 点游戏的策略蒙特卡洛值预测
  10. HTML5第6章上机,第6章__HTML5的表单.ppt
  11. 将空闲空间合并到现有分区时出现错误: 检测到下列文件系统错误,分区容量未做调整, 无效的的文件记录
  12. [C语言] 0.5倍速讲解世纪大战 有趣的C语言玩法
  13. 【竖心旁】我曾在森林里遇见过一只夜莺
  14. 用无线网卡做wifi热点共享网络的方法
  15. MP3 ID3v1 ID3v2 APEv2 标准总结
  16. 工具类APP的推广方式
  17. OpenGL之GLEW安装
  18. App瘦身最佳实践(分析了微信、淘宝、微博图片文件的放法)
  19. Workflow规则收藏
  20. clickhouse在风控-风险洞察领域的探索与实践

热门文章

  1. 收藏 | 损失函数理解汇总,结合PyTorch1.7和TensorFlow2
  2. 【人工智能】【深度学习】初学者如何选出最适合自己深度学习框架?
  3. HALCON学习之旅(七)
  4. java 异常 return_Java异常处理中同时有finally和return语句的执行问题
  5. mysql wb bbu_BBU
  6. windows 弹shell_Windows系统常用免费软件“红黑榜”
  7. 国外html游戏发展历史,17个国外游戏行业的网页设计欣赏
  8. 网站开启 IPv6 访问,测试是否支持 IPV6
  9. Android设置Alpha值实现图片渐变效果
  10. Docker(二十三)-Docker使用pipework配置本地网络