vc中的控件使用(CTreeCtrl,CComboBox,CFileDialog)

VC++实现高性能目录选择下拉树控件:MFC/Win32动态加载与异步优化 在Windows桌面应用开发中,文件系统交互是基础且高频的需求,涉及文件浏览、路径选择等核心功能。其原理基于操作系统提供的文件API(如FindFirstFile)和GUI框架的控件机制,通过树形结构直观展示目录层级。这项技术的价值在于提升应用的专业性和用户体验,替代系统默认对话框,实现更流畅的交互。在工程实践中,常应用于安装程序、配置工具、资源管理器等需要深度定制界面的场景。本文聚焦于利用VC++(MFC/Win32)实现一个嵌入式的目录选择下拉树控件,重点解决了动态加载和异步优化等性能瓶颈,确保控件在大 阅读详情

1 tree control 控件
  tree control控件的类为CTreeCtrl,使用方法如下:
    CTreeCtrl m_treeProj;
    DWORD dwStyle = GetWindowLong(m_treeProj.m_hWnd, GWL_STYLE);   // 获得当前树控件的GWL_TYPE显示类型
    dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;    //自定义显示类型
    SetWindowLong(m_treeProj.m_hWnd, GWL_STYLE, dwStyle);   // 设置显示类型
    HTREEITEM m_hRoot = m_treeProj.InsertItem("根节点");  // 插入一个根节点. 为HTREEITEM数据类型
    m_treeProj.Expand(m_hRoot,TVE_EXPAND);   // 将m_hRoot根结点设置为展开样式
    m_treeProj.InsertItem("子节点",m_hRoot);

  改变树节点时,获取当前节点:
   添加TVN_SELCHANGED事件,在事件处理函数中使用GetSelectedItem()函数可以得到当前选中的节点
      GetItemText()函数可以得到节点的名称,如:
     HTREEITEM hCurItem;
 hCurItem = m_treeProj.GetSelectedItem();    //得到当前选中的节点
 CString strVal = m_treeProj.GetItemText(hCurItem);  //获取选中节点的名称


2 文件对话框
   在mfc中打开选择或者保存文件的对话框非常简单,用CFileDialog类,使用方法如下:
   CFileDialog fileObj(TRUE);   //TRUE 表示打开选择文件对话框,FALSE表示打开保存文件对话框
   if(fileObj.DoModal() == IDOK)
   {
 CString filedir = fileObj.GetPathName();  //得到选择的文件的完整路径
 //to do
   }

3 选择框CComboBox
   CComBox为一个选择列表框,使用方法如下: 
   CComBox m_combo;
   m_combo.AddString("options");   //添加一个子项
   添加CBN_SELCHANGE事件,可以监听选择框的变化,但是在事件处理函数中如果需要获取当前选中的项,则需要作如下处理:
   int nIndex = this->m_combo.GetCurSel();
 int nCount = this->m_combo.GetCount();
 if ((nIndex != CB_ERR) && (nCount >= 1))
 {
 if (nIndex < nCount)
  this->m_combo.SetCurSel(nIndex);
 else
  this->m_combo.SetCurSel(0);
 }
   否则的话,获取到的将是变化以前的内容

 


 

下拉框树控件(下拉框和树结合) 下拉框树控件 下拉框树控件(下拉框和树结合)下拉框树控件(下拉框和树结合)下拉框树控件(下拉框和树结合)下拉框树控件(下拉框和树结合)下拉框树控件(下拉框和树结合)下拉框树控件(下拉框和树结合)(下拉框和树结合) 立即下载

相关推荐

CListCtrl上添加CComboBox控件

网上大部分ClistCtrl添加ComboBox控件都是在OnEditBegin函数中添加,我写的这个从一开始就一直将CComboBox控件静态显示在CListCtrl之上。将其他控件也可参考这段代码,比较简单易懂!

一个定制CFileDialog对话框的实例

 [ 原创文档 本文适合初级读者 已阅读57158次 ]文档代码工具<br /><br />一个定制CFileDialog对话框的实例<br /><br />编译:northtibet下载源代码<br /><br /><br />    很多程序员都喜欢让自己的代码运行效果与众不同。Windows系统的应用程序打开某个文件一般使用的都是默认的CFileDialog。但是这个默认的CFileDialog往往满足不了用户的要求。我就碰到一个这样的用户,他的要求如下: 1、在默认的CFileDialog对话框

scollins的专栏 1165

树形Combobox

实现了树形Combobox组件ComboTreeCtrl,开发语言为MFC

使用CFileDialog选择多个文件(VC)

李国帅 于2009-07-08 17:21选择一个文件//CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("AVI文件(*.avi)|*.AVI|mp4文件(*.mp4)|*.MP4|jpg文件(*.jpg)|*.jpg||")); CFileDialog dlg(TRUE, NULL, NULL, OF

lgs7907 3391

VC 树叉控件TreeCtrl、ListCtrl 用法实例.rar

VC 树叉控件TreeCtrl、ListCtrl 用法实例演示源码,也就是树形菜单,在VC 窗体中使用树形菜单控件的方法和思路演示,已为你做成了完整的例子,从此你可以在你的软件窗口中添加入这种树形的展开菜单了,体验软件操作体验。

CBCGPShellTree和ctreectr的使用

CBCGPShellTree和ctreectr的使用 对话框工程 vc6.0代码

VC++打开文件 CFileDialog::DoModal

CFileDialog::DoModal 调用此功能公开Windows常用文件对话框并允许用户浏览文件和目录并输入文件名。 virtual INT_PTR DoModal( ); 返回值 IDOK或IDCANCEL。如果IDCANCEL返回,则调用WindowsCommDlgExtendedError函数确定是否发生了错误。 ...

weixin_30641999的博客 382

联想服务器ThinkSystemRAID阵列设置教程

关注我不迷路,全是干货! 以联想ThinkSystemSR530为例子进行示范。 开机点按【F1】 点击——【UEFI设置】 依次点击——【系统设置】——【存储】 点击——【RAID卡】 PS:本次服务器配置的是730-8i 阵列卡,按实际情况选中需要设置的阵列卡即可。 点击——【Main Menu】 点击——【Configuration Management】 点击——【Create Virtual Drive】 点击——【Select RAID Leve..

littlelotusK的博客 2万+

VC中CFileDialog的扩展问题

<br />扩展后的CFileDialog中 在CFileDialog.DoModal()中 有这么一行代码到时程序异常<br /> <br /> if (nResult)<br />  ASSERT(pThreadState->m_pAlternateWndInit == NULL);     // 这一句会导致异常<br /> pThreadState->m_pAlternateWndInit = NULL;<br /> <br />// 解决方法<br />//这里处理notify 消息<br />B

cay22的专栏 1万+

Chromium实用技巧篇-如何下载指定版本的Chromium(一)

通过本指南,您已成功掌握如何在Windows系统上下载并安装最新版本的Chromium浏览器。我们详细介绍了从进入Chromium官网,到查找最新版本号,再到下载和安装的每一个步骤。通过这些步骤,您不仅能够体验到最新的浏览器功能,还可以参与开源项目的开发,享受高速、稳定、安全的浏览体验。

守城小轩的技术窝棚 1万+

通过两个mark点确定某一个点的位置

read_image (Image0, '0.bmp') binary_threshold (Image0, Region, 'max_separability', 'dark', UsedThreshold) connection (Region, ConnectedRegions) fill_up (ConnectedRegions, RegionFillUp) select_shape_std (RegionFillUp, SelectedRegions, 'max_area', 70) red...

优快云博客 3889

扩展CFileDialog时可用的资料

Control   Name         Type         ID      Open                      Button       1      Cancel                    Button       2      folder                   ComboBox   1137      ToolBar          

fishion的专栏 1019

SAP Group Reporting入门指南(11)--配置

这里选择的是FS项目目标属性,FS项目有四个目标属性,比如上图配置的是抵消目标属性,所以就去找触发FS项目的抵消目标属性配置的是哪个FS项目,就以这个FS项目作为贷方。这里选择的是FS项目目标属性,FS项目有四个目标属性,比如上图配置的是抵消目标属性,所以就去找源FS项目的抵消目标属性配置的是哪个FS项目,就以这个FS项目作为借方。例如,添加一个包含用于存储百分比的 FS 项的选项。这里选择的是FS项目的角色属性值,如果这里定义了,那么就从FS项目中找到FS项目角色属性值与之匹配的FS项目作为贷方。

bflyfish的博客 568

MFC之CFileDialog Class的简单应用

MFC之CFileDialog Class的应用,包括基本的文件操作和文件界面简单设计

StarRain2016 736

OData Request:Create Entity 在 ABAP OData Client Proxy 中的工程化实践

文章摘要 本文针对具备 SAP Gateway 与 ABAP 开发经验的读者,详细讲解如何通过 ABAP OData Client Proxy 实现 OData 服务的 Create 操作。首先对比了 OData V2 与 V4 的 Create 规范差异,强调键、集合 URL 和请求体的标准化要求。随后介绍了 ABAP Client Proxy 的编程模型,包括 Client Proxy、Entity List Resource 和 Create Request/Response 三个核心对象,并提供了完

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 248

【AI智能体】Codex 高级进阶使用技巧项目实战操作详解

Codex 高级进阶使用技巧项目实战操作详解

congge 1万+

C++ MFC combo box和list control控件的使用

Combo Box用法:combo box控件由两部分组成:编辑框和选择框(列表框)组成,对应的类是CComboBox 1、改变下拉框大小:先点向下的箭头,就可以调整下拉框大小 2、如果 ComboBox 的 Sorted 属性设置为 true, 则新添加项将按字母顺序插入到列表中。 否则,在列表的结尾处插入项。 3、要立即响应选择框的改变(即选择框一改变选项,就立刻将结果传递进去...

weixin_30263277的博客 467

激光雷达与相机时间戳同步:原理、触发方案与工程实现

目录一、引言:时间不同步,多传感器融合必出问题二、核心原理:相机成像机制与触发模式(同步的基础)2.1 相机成像的两个核心阶段:曝光与读出(1)非交叠曝光(2)交叠曝光2.2 相机触发模式:内触发 vs 外触发(1)内触发(2)外触发2.3 关键信号:Strobe信号与预输出(同步的核心技巧)三、三种主流时间戳同步方案(工程落地首选)3.1 方案一:统一硬触发(精度最高,高端场景首选)核心原理核心配置要点优缺点适用场景3.2 方案二:软触发+硬触发(Strobe预输出,车载量产首选)核心原理核心配置要点优缺

getusushu的博客 206

CComboBox执行ON_CBN_SELCHANGE事件时提取当前选中字符串方法

CComboBox执行ON_CBN_SELCHANGE事件时提取当前选中字符串方法可行的代码如下:CString strCxmc; m_comboBox.GetLBText(m_comboBox.GetCurSel(),strCxmc); 如果采取m_comboBox.GetWindowText()得到的将是选择之前的字符串。

collecte的专栏 6469

STM32F767 GPIO跑马灯工程从零搭建指南

嵌入式开发中,基于HAL库的STM32工程初始化是确保外设可靠运行的基础环节。其核心在于理解芯片时钟树配置原理、GPIO工作模式与硬件电气特性之间的映射关系。正确启用RCC时钟源、合理分配AHB/APB总线分频系数,可保障系统主频稳定;而精准设置推挽输出、上下拉状态及引脚速度,则直接影响LED等基础外设的驱动可靠性。结合STM32CubeMX图形化配置工具,开发者能将寄存器级操作抽象为可视化流程,显著提升工程可追溯性与复用性。本文以STM32F767IGT6和阿波罗开发板为载体,详解从Repository固

weixin_42453228的博客 63

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: select动态添加option
下一篇: char*和BSTR转换
zhsp1029
博客等级 码龄21年 115粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值