PropTree 控件库 下载

CPropTree v1.0-属性树控件 支持动态可编辑项目的自定义MFC树控件 立即下载

下载链接:

链接:https://pan.baidu.com/s/1nsWkzSu0kKXdVKbIuGHNNQ 
提取码:ko2b 

Custom MFC tree control that support dynamic editable items​​​​​

Sample Image

 

Sample Image

 

Sample Image

Introduction

The CPropTree class implements a tree control that is similar to the property view seen in Visual Studio .Net. The source project compiles to a DLL so you can easily incorporate it into your project. You can check my web page for more information on the control.

The control has two window areas:

  • Tree Control
  • Descriptive area

The tree control section functions just a like a normal tree control with an addition of a splitter bar separating the tree item properties. Tree item properties are inherited from the CPropTreeItem class. These items can be edit controls, static text, dropdown combo list, or any type of control you wish to create. Items on the root level of the tree control do not have editable properties. They are used as section headers.

Tree items can contain checkboxes. By default properties that are editable (non-readonly), are displayed in bold lettering. Read only or non-editable items are displayed in a normal font.

The descriptive area displays the selected item's text and any informational text. This section can be displayed or hidden by calling CPropTree::ShowInfoText().

Implementation

To use the control, create an instance of the class in your dialog or view class header. In the OnInitDialog() or OnCreate() initialize the control:

DWORD dwStyle;
CRect rc;

// PTS_NOTIFY - CPropTree will send notification messages to the parent window
dwStyle = WS_CHILD|WS_VISIBLE|PTS_NOTIFY;

// Init the control's size to cover the entire client area
GetClientRect(rc);

// Create CPropTree control
m_Tree.Create(dwStyle, rc, this, IDC_PROPERTYTREE);

To add items to the control, dynamically create objects inherited by the CPropTreeItem class and call the CPropTree::InsertItem() method.

CPropTreeItem* pItem1;

pItem1 = m_Tree.InsertItem(new CPropTreeItem());
pItem1->SetLabelText(_T("Properties"));
pItem1->SetInfoText(_T("This is a root level item"));

CPropTreeItem* pItem2;

pItem2 = m_Tree.InsertItem(new CPropTreeItemEdit(), pItem1);
pItem2->SetLabelText(_T("EditItem"));
pItem2->SetInfoText(_T("This is a child item of Properties, with an edit control"));

pItem2->SetItemValue((LPARAM)_T("This is some default text for the edit control"));

Advanced Features

Notification Messages

The control uses WM_NOTIFY notification messages to signal events. Add a ON_NOTIFY message handler to the parent window to process notifications. The control supports most of the common NM_ codes with addition of the following CPropTree specific WM_NOTIFY codes.

  • PTN_INSERTITEM when an item is inserted
  • PTN_DELETEITEM when an item is about to be deleted
  • PTN_DELETEALLITEMS when a call is made to delete all items
  • PTN_ITEMCHANGED when an item's property has been modified
  • PTN_SELCHANGE when the current selection changed
  • PTN_ITEMEXPANDING when an item is about to expand or close
  • PTN_COLUMNCLICK when the mouse clicks on the splitter bar
  • PTN_PROPCLICK when the mouse clicks on an item's property area
  • PTN_CHECKCLICK when the mouse clicks on an item's checkbox

PTN_

notification messages returns the NMPROPTREE structure. You can use this structure along with the CPropTreeItem::SetCtrlID() method to determine the tree item that sent an event.

[...]
	//}}AFX_MSG_MAP
	ON_NOTIFY(PTN_ITEMCHANGED, IDC_PROPERTYTREE, OnItemChanged)
END_MESSAGE_MAP()


void CMyDialog::OnItemChanged(NMHDR* pNotifyStruct, LRESULT* plResult)
{
	LPNMPROPTREE pNMPropTree = (LPNMPROPTREE)pNotifyStruct;

	if (pNMPropTree->pItem)
	{
		// retrieve pItem's changed data
	}

	*plResult = 0;
}

Custom Property Items

The library already has some default derived CPropTreeItem classes ready to use. Such as an edit control CPropTreeItemEdit, color picker CPropTreeItemColor, dropdown combobox CPropTreeItemCombo and static text CPropTreeItemStatic. To create your own custom property items:

  • Create your own class inherited by CPropTreeItem. This class usually will have multiple inheritance depending on what type of item you want to create.
    class CMyCustomEditPropItem : public CEdit, public CPropTreeItem
    {
    public:
    	CMyCustomEditPropItem();
    	virtual ~CMyCustomEditPropItem();
    
    	[...]
    };
    class CMyCustomComboBoxPropItem : public CComboBox, public CPropTreeItem
    {
    public:
    	CMyCustomComboBoxPropItem();
    	virtual ~CMyCustomComboBoxPropItem();
    
    	[...]
    };
  • Override the CPropTreeItem virtual methods to implement your property item.
  • Dynamically create an instance of your class and insert it into a CPropTree control.

The methods most often overriden from CPropTreeItem are:

  • CPropTreeItem::OnActivate(). Called when the property area is clicked by the mouse or the enter key has been pressed on the selected item. The OnActivate() method is where you show the property item's window if it has one (such as an edit control or a popup menu).
  • CPropTreeItem::OnCommit(). Called when data has been commited. In this method you would extract the changed data and hide the property's item's window. OnCommit() gets called when CommitChanges() is called. A derived CPropTreeItem class would call CommitChanges() during a loss of the input focus or if the "Enter" key is press as in a edit control.
  • CPropTreeItem::DrawAttribute(). CPropTree calls DrawAttribute() when the property item needs to be displayed. Drawing is done directly on the display context of the PropTree control.
黑苹果注入三码工具ProperTree-master 大名鼎鼎的黑苹果注入三码工具,可以直接config.plist文件,操作简单,小白首选; 任何操作切记提前备份efi文件! 任何操作切记提前备份efi文件! 任何操作切记提前备份efi文件! 重要的事情说三遍!!! 立即下载

相关推荐

ProperTree

ProperTree是一款使用Python3语言编写的跨平台Plist开源编辑器。软件默认没有编译,这里提供 macOS 的编译版本

黑苹果EFI引导配置文件修改利器ProperTree,无损修改黑苹果三码黑苹果多余启动项

使用ProperTree直接编辑config.plist文件,不用担心操作错误,免去打开config.plist都要重新选择.plist文件,方便快捷编辑黑苹果EFI

HongYinXin的博客 6071

ProperTree:用python编写的跨平台GUI plist编辑器

它是什么? ProperTree是使用Python (与2.x和3.x兼容)和Tkinter编写的跨平台GUI plist编辑器。 特征 跨平台-应该可以在python和tkinter做的任何地方工作 基于文档支持多个窗口 节点拖放以重新排序 复制和粘贴 查找/替换-允许搜索键或值 有序或无序词典支持 完整的撤消重做堆栈 在python 2中对二进制属性列表和unicode的反向支持 扩展整数转换以允许在xml <integer>标记中使用十六进制整数(例如0xFFFF ) 上下文感知的右键单击菜单,其中包含OpenCore或Clover config.plist文件的模板信息 OC(干净)快照,用于遍历ACPI,驱动程序,Kexts和OpenCore config.plist文件工具的内容 支持Base64,Hex,Ascii和Decimal的值转换器 获取Pr

EFI编辑器 ProperTree 12.1可用

EFI编辑器 ProperTree 12.1可用

Z17362251225的博客 2819

PC Cleaner Pro注册机

APPCRASH解决办法,好不容易找到的,大家捧捧场吧

ProperTree Plist Editor

ProperTree Plist editor for macOS is coming! A free, great, light Plist editor!

【macOS免费软件推荐】第3期:ProperTree

生活中,我们可能会有编辑macOS Plist的需求。我们会发现,无论是用文本编辑打开,还是终端vim、nano,总会出现乱码。这时候,一些人会去买一个叫做PlistEdit Pro的软件。其实根本没有这个必要。有一个免费开源软件,它小巧简约,也可编辑Plist。今天我就要向大家推荐这个软件——ProperTree(支持多平台)。......

YoungGeeker 4720

ProperTree-master.zip文件的重新命名标题

资源下载链接为: https://pan.quark.cn/s/b77fec483e39 “ProperTree-master.zip”是一个包含名为“ProperTree-master”项目的压缩文件,该项目是一个专为Windows用户设计的plist编辑器,主要用于编辑黑苹果系统的config.plist文件。黑苹果是Mac OS的克隆系统,其中config.plist是核心配置文件,用于定制和优化启动过程,尤其是在搭配OpenCore引导程序时。 Plist编辑器说明: Plist(全称为“Property List”)是Apple操作系统中的一种数据存储格式,通常用于存储应用程序的配置信息或用户偏好设置。它以XML或二进制编码的键值对结构呈现。在黑苹果系统中,config.plist文件包含大量配置选项,涉及启动参数、硬件驱动和系统设置等。由于其复杂性,使用专门的编辑器如ProperTree可以提供更直观、便捷的编辑体验。 Win版ProperTree: ProperTree是一款面向Windows用户的plist编辑工具,它让用户能够更轻松地查看、修改和管理config.plist文件。在Windows环境中,由于缺乏原生支持,ProperTree凭借良好的用户界面和强大功能,解决了编辑plist文件的难题。 Python环境: 虽然没有明确说明,但考虑到大多数开源软件项目可能依赖特定开发环境,“ProperTree-master”可能基于Python编程语言构建。Python因其易读性、丰富的库支持和跨平台特性,常用于开发此类工具。因此,用户可能需要在Windows机器上安装Python环境,才能运行或构建该项目。

ProperTree:跨平台plist编辑神器,告别配置文件格式兼容烦恼

你是否曾经为了编辑苹果系统的配置文件而头疼不已?不同操作系统间的工具不兼容,二进制和XML格式转换困难,复杂的树形结构难以直观编辑?ProperTree正是为解决这些痛点而生的跨平台GUI编辑器。无论你是Windows、macOS还是Linux用户,这款基于Python和Tkinter开发的工具都能为你提供一致、高效的plist文件编辑体验。 ## 为什么ProperTree值得你关注? ##

gitblog_00315的博客 431

S32K144之芯片锁死解锁——关闭debug端口

S32K144之芯片锁死及解锁 经常捣鼓单片机就会发现,时常会因为某些操作不当导致芯片锁死情况的发生,通过Jlink我们可以读到芯片的ID,但是无法进行Debug,这很是让人苦恼。 基于S32K144的芯片锁死,一般有如下几种可能: 1、时钟配置异常,过高的配置时钟频率以及不配置时钟,都有可能造成芯片保护锁死,我就曾经因为不注意把时钟配置代码注释掉,导致芯片锁死。 2、我是微软雅黑烧写断电,如果在...

weixin_41935674的博客 1万+

光模块MCU开发全解析:从架构原理到固件调试实战

在高速光模块中,MCU并非传统印象里的核心处理器,而是负责数字诊断、闭环控制和协议管理的嵌入式管家。随着800G、1.6T模块的普及,MCU与DSP/SoC的协同、I2C总线通信、ADC采集、APC/TEC控制等低速域任务愈发关键。理解MCU的选型规格、启动流程和固件设计,是保障光模块稳定运行的基础。本文从光模块架构切入,剖析MCU的角色定位,详细拆解I2C从机实现、电芯片配置、校准与升级等工程细节,并结合实际调试经验梳理常见故障与排查思路,为嵌入式工程师提供一份可落地的光模块MCU开发指南。

weixin_29192365的博客 363

ProperTree跨平台GUI编辑器:新手也能轻松掌握的plist文件编辑神器

ProperTree是一款基于Python和Tkinter开发的跨平台GUI plist编辑器,兼容Python 2.x和3.x版本,让新手也能轻松编辑plist文件。无论是Windows、macOS还是Linux系统,都能提供一致且高效的plist编辑体验。 ## ✨ 核心功能亮点 ProperTree作为专业的plist编辑工具,提供了丰富实用的功能,满足从简单到复杂的编辑需求: ###

gitblog_00113的博客 774

STM32F407驱动OV2640摄像头:从SCCB协议到I2C模拟的保姆级避坑指南

本文详细介绍了STM32F407驱动OV2640摄像头的完整流程,重点解析SCCB协议与I2C的关键差异,并提供GPIO模拟实现方案。通过实战案例和调试技巧,帮助开发者避开常见陷阱,实现稳定的图像采集功能。

weixin_28700411的博客 345

ProperTree终极指南:跨平台plist编辑器的完整使用手册

还在为复杂的plist配置文件而烦恼吗?ProperTree这款基于Python开发的跨平台GUI编辑器,将彻底改变你的配置管理方式!无论你是Windows、macOS还是Linux用户,都能享受到直观便捷的可视化编辑体验。 ## 🎯 快速上手:三步启动ProperTree ### 第一步:获取ProperTree项目 使用以下命令下载ProperTree项目: ```bash git cl

gitblog_00519的博客 790

STM32H723串口接收全为0 & CAN错误中断问题

STM32H723串口接收全为0 和 叠加的导致CAN错误问题

weixin_38743772的博客 3916

Windows下高效部署llama.cpp:从环境配置到模型量化的完整指南

本文提供了一份详尽的Windows系统下部署llama.cpp的完整指南。内容涵盖从Python环境配置、使用CMake与MinGW编译工具链的搭建,到编译llama.cpp项目、获取并转换模型为GGUF格式,以及执行模型量化和基础推理测试的全过程。指南旨在帮助开发者在普通Windows电脑上,无需高端显卡,仅凭CPU即可高效运行大语言模型,并重点解决了部署过程中常见的环境与编译错误。

weixin_28841265的博客 880

ProperTree跨平台plist编辑器:免费终极配置解决方案

还在为复杂的配置文件编辑而头疼吗?ProperTree这款跨平台GUI plist编辑器将彻底改变你的工作方式!无论你是Windows、macOS还是Linux用户,ProperTree都能为你提供直观便捷的plist文件编辑体验。这款基于Python开发的工具,让技术新手也能轻松上手,告别繁琐的命令行操作。 ## 🎯 核心价值主张 ### 跨平台无缝体验 ProperTree真正实现了"一

gitblog_00866的博客 695

研发工作量科学量化评估模型:从多维系数到等级落地指南

摘要:本文提出了一套基于多维系数的科学量化评估模型,用于精准评估软件开发工作量。该模型从需求复杂度、技术难度、质量要求和依赖风险四个核心维度进行量化评估,通过系数乘积计算综合工作量。文章详细说明了各维度的系数区间划分标准,并演示了从基础工作量估算到综合系数计算的具体步骤。该模型通过结构化评估过程,将主观经验转化为客观量化指标,帮助团队提高工作量评估的准确性,增强项目交付的可预测性。其价值在于使评估过程透明化、结构化和可追溯,从而减少项目延期风险,优化资源规划。

友莘居士的博客 1681

FlatBuffers工作流引擎:流程定义与实例数据优化

在现代分布式系统和游戏开发中,高效的数据序列化和传输是核心需求。FlatBuffers作为Google开发的内存高效序列化库,通过其独特的内存访问机制和零拷贝特性,为工作流引擎提供了卓越的性能优化方案。本文将深入探讨如何利用FlatBuffers构建高性能工作流引擎,实现流程定义与实例数据的极致优化。 ## FlatBuffers核心优势 ### 内存访问机制对比 ```mermaid fl...

gitblog_01022的博客 1004

ARM系统控制和管理接口System Control and Management Interface

本文档描述了一个可扩展的独立于操作系统的软件接口,用于执行各种系统控制和管理任务,包括电源和性能管理。 本文档描述了系统控制和管理接口(SCMI),它是一组操作系统无关的软件接口,用于系统管理。

AI-安全-功耗 1913

文献解读:结构方程模型SEM基础,小白看这个就基本够了

今天要解读的依然是一篇教学文献:The Basics of Structural Equation Modeling,文献作者是Diana Suhr, Ph.D. University of Northern Colorado。 文献链接: https://www.lexjansen.com/wuss/2006/tutorials/TUT-Suhr.pdf 结构方程模型是: 用来检验显变量与潜变量关系假设的综合性的统计技巧 用来表示,估计或者检验变量间理论关系的技巧 用来探究一系列潜变量和显变量因

Codewar的博客 6万+

ProperTree神器:小白也能上手的跨平台GUI编辑器终极指南

还在为复杂的plist文件编辑而头疼吗?🤯 别担心,ProperTree来拯救你了!这是一款超实用的跨平台GUI编辑器,让你在Windows、macOS和Linux上都能轻松编辑plist文件。无论你是黑苹果玩家还是iOS开发者,这款工具都能让你的工作事半功倍! ## 为什么你需要ProperTree? 想象一下,你正在配置OpenCore引导,面对密密麻麻的plist文件,传统编辑器让你看

gitblog_00859的博客 546

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ProperTree:跨平台plist编辑器的专业使用指南

还在为复杂的plist配置文件而烦恼吗?ProperTree这款基于Python开发的跨平台GUI编辑器,将彻底改变你的配置管理方式。作为一款专业的plist文件编辑工具,ProperTree让配置管理变得更加直观和高效。 ## 🚀 轻松上手:三步启动ProperTree ### 获取项目代码 首先需要下载ProperTree项目: ```bash git clone https://git

gitblog_00973的博客 329

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ProperTree:跨平台Plist编辑器,告别配置文件编辑烦恼

你是否曾经为编辑macOS和iOS的Property List文件而头疼?在Windows、macOS和Linux之间切换时,找不到统一的plist编辑工具?二进制和XML格式转换让你束手无策?ProperTree正是为解决这些痛点而生的跨平台GUI plist编辑器。 ProperTree是一款基于Python和Tkinter开发的跨平台Property List文件编辑器,无论你使用Wind

gitblog_01108的博客 342
上一篇: [转]在AutoCad中遇到(你的应用进入了中断状态,但当前未执行任何受选定调试引擎支持的代码(例如,仅在执行本机运行时代码)。)
下一篇: autocad net 设置窗口句柄 owner 为autocad
TimeFuture2017
博客等级 码龄10年 115粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值