之前两篇关于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"), );
}
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

win32 htmlayout dom操作demo的更多相关文章

  1. 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo

    前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ...

  2. win32 htmlayout点击按钮创建新窗口,以及按钮图片样式

    最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...

  3. 前端基础之BOM与DOM操作

    目录 BOM操作 navigator对象 screen对象 history对象 localtion对象 弹出框 计时 setTimeout() clearTimeout() setInterval() ...

  4. 解密jQuery内核 DOM操作

    jQuery针对DOM操作的插入的方法有大概10种 append.prepend.before.after.replaceWith appendTo.prependTo.insertBefore.in ...

  5. jquer 事件,选择器,dom操作

    一.jQuery简介 jQuery 是一个 JavaScript 库.(其实就是js,就是封装了,语法上有些不一样) jQuery 极大地简化了 JavaScript 编程. jQuery 库位于一个 ...

  6. php : DOM 操作 XML

    DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...

  7. JQuery(选择器、事件、DOM操作)

    一.jQuery简介 jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 库位于一个 JavaScript 文件中,其中包含了所有 ...

  8. 第3章 jQuery的DOM操作

    一.  DOM 分为DOM核心,HTML-DOM和CSS-DOM 1.DOM核心 不专属与javascript. 获取对象:document.getElementsByTagName('div') 获 ...

  9. javascript学习(二) DOM操作HTML

    一:DOM操作HTML JavaScript能够改变页面中所有的HTML元素 JavaScript能够改变页面中所有的HTML属性 JavaScript能够改变页面中所有的CSS样式 JavaScri ...

随机推荐

  1. WPF 针对数据源某个属性进行排序

    原文:WPF 针对数据源某个属性进行排序 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wanlong360599336/article/detai ...

  2. Android Studio如何打jar包

    前言 公司经常和客户提供SDK,提供一个jar包sdk是一件很平常的事.Eclipse 有图形界面和向导供开发者将一个项目导出为jar包,相对来讲是比较简单的,切换到Android Studio后,则 ...

  3. OVS处理upcall流程分析

    处理upcall总体框架: 1.由函数handle_upcalls()批量处理(in batches)的是由内核传上来的dpif_upcalls,会解析出upcall的类型.这里主要看在内核中匹配流表 ...

  4. C# 8.0 预览特性

    初试C# 8.0 Visual Studio 2019的第一个预览版(使用Visual Studio 2019提高每个开发人员的工作效率)和.NET Core 3.0(宣布.NET Core 3预览1 ...

  5. 音频、视频等文件格式(.ts、.meta)及其认识

    MPEG:Moving Picture Experts Group,动态图像专家组, JPEG:Joint Photographic Experts Group,联合图像专家组 1. .ts .ts ...

  6. wxWidgets谁刚开始学习指南(5)——使用wxSmith可视化设计

    wxWidgets谁刚开始学习的整个文件夹指南   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用w ...

  7. 新世界PT850/PT853检查用友机对接T1交易宝

    新世界PT850/PT853检查用友机对接T1交易宝 这是一个老话题.简单.条形码号码模式是没有必要说,我要说的是,,启用条码扫描.显示有关信息. 并能够产生:条码 , 数量,价格格 这样做的目的.将 ...

  8. EMES信息化制造系统的概念

    EMES是指,信息化制造系统.它由五个功能子系统构成,分别是:企业信息平台子系统(EIP),物料实时信息系统(MRI).能源实时信息系统(PRI).设备实时信息系统(EMR).质量实时信息系统(QRI ...

  9. 从DOS bat启动停止SQL Server (MSSQLSERVER)服务

     由于机器上装了SQL Server2008,导致机器开机变慢,没办法只能让SQL Server (MSSQLSERVER) 服务默认不启动.但是每次要使用SQL Server时就必须从控制面板-管理 ...

  10. Notepad++ 的使用(插件)

    为 Notepad++ 安装 NppFTP 插件,查看修改虚拟机上的文本文件 0. 常用快捷键 单行.多行注释 //方式 :ctrl+k 区块注释 / * * /方式 :ctrl+q 取消单行.多行. ...