zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/rixiang/p/6668068.html
Copyright © 2011-2022 走看看