`
风吹过PP好冷
  • 浏览: 38054 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

自绘CTreeCtrl树节点名称显示不全的问题

阅读更多

在实际应用中,需要自绘CTreeCtrl,全部使用gdi绘制节点和文字,当节点名称较长时会出现显示不全的问题,拖动到最右边的时候仍然不能显示完全。


 

 

原因是自绘的字体与CTreeCtrl默认的字体不同造成的。

解决方法是向树控件发送WM_SETFONT消息,将默认字体替换为自绘的字体。

 

 

CFont* pOldFont;
CFont newFont;

LOGFONT lf;
ZeroMemory(&lf,sizeof(lf));
lf.lfHeight = 12;
lf.lfWidth = 6;
lf.lfWeight = 100;
_tcscpy(lf.lfFaceName,_T("宋体"));
newFont.CreateFontIndirect(&lf);
pOldFont = tempDC.SelectObject(&newFont);
::SendMessage(m_hWnd, WM_SETFONT, (WPARAM)&newFont, (LPARAM)FALSE);
 
  • 大小: 28.5 KB
分享到:
评论

相关推荐

    在VS2013上的MFC树控件操作(连接对话框)

    假设我们有一个组织结构的树控件,每个节点代表一个部门,部门名称可能重复。我们为每个部门节点设置一个唯一的ID,当用户点击部门节点时,根据ID打开对应的部门详细信息对话框。 总结,通过VS2013的MFC框架,我们...

    CTreeCtrl的运用 新建 重命名 删除

    `CTreeCtrl` 提供了多种方法用于创建、添加、修改和删除树节点。例如,`InsertItem` 函数用于插入一个新的树节点,`SetItemText` 用于改变节点的文本,而`DeleteItem` 则用于删除指定的节点。 **2. 右键菜单的实现*...

    VC CTreeCtrl,CListCtrl 资源管理器

    3. **事件处理**:响应CTreeCtrl的`TVN_SELCHANGED`通知,当用户选择新的树节点时,更新CListCtrl的内容。 4. **异步操作**:为了提高用户体验,可能需要在后台线程中加载目录内容,防止阻塞UI。 5. **排序与过滤**...

    使用树控件显示磁盘目录

    - 注意处理`.`和`..`这两个特殊目录,它们分别代表当前目录和父目录,通常不需要在树控件中显示。 5. **事件处理**: - 当用户点击节点时,会触发`NM_CLICK`或`TVN_SELCHANGED`通知,需要捕获这些事件并根据需要...

    vc数据库里面树的应用,如何从数据库里面读取并且连接到树

    - 使用虚拟模式,仅在需要时才创建和显示树节点。 - 异步加载,如在后台线程中加载数据,避免阻塞UI。 总之,将数据库数据与VC++的树形控件结合,需要理解数据库访问、数据结构化及控件操作等多方面知识。通过精心...

    VC++遍历文件夹自动生成目录树

    4. **CTreeCtrl类**:MFC的CTreeCtrl类是树形控件的封装,它可以用于创建和显示目录树。我们可以通过InsertItem方法插入新的节点,SetItemText设置节点文本,SetItemData关联数据,以及SetItemState和...

    注册表查看编辑器 + 源码

    windows自带的注册表编辑器并没有把所有的项都显示出来,出于...里面还可以参考一下CTreeCtrl的Expand函数只能触发一次TVN_ITEMEXPANDING or TVN_ITEMEXPANDED消息问题的解决方法。 有问题联系:hastings1986@163.com

    VC中CTreeView控件的使用.doc

    在VC++中,CTreeView是CView类的一个派生类,它与CTreeCtrl(树控件)一起工作,提供了对树形结构的操作接口。 1. **清空与重新填充TreeView** 当需要清空TreeView的所有内容并重新填充时,通常会使用`...

    独立的资源管理器

    CTreeCtrl用于创建树形结构,展示文件系统的目录层次,而CListCtrl则用于显示文件和文件夹的详细列表,包括名称、大小、类型、日期等信息。 CTreeCtrl是一个可视控件,用户可以通过它来创建、编辑和管理树状数据...

    一个比较简单的资源管理器的源代码

    3. **树控件**:CTreeCtrl类代表了MFC中的树形控件,用于显示文件系统的层级结构。每个节点可以有子节点,对应于文件系统中的目录和子目录。用户可以通过展开和折叠节点来浏览目录层次。 4. **查找文件功能**:资源...

    COptionTree VC2008 修改版 编译可通过

    描述中提到的"修改了COptionTree代码在VC2008环境下编译总是出现bug,GetTextExtentPoint32函数出错的问题",这显示原版COptionTree源码存在与VC2008编译器不兼容的问题,尤其是在使用`GetTextExtentPoint32`函数时...

    MFC 实现资源管理器(2010)Explorer.rar

    - 重写OnInitialUpdate()函数,用于填充树视图的根节点,如"硬盘驱动器"、"网络"等。 2. **处理CTreeCtrl的回调消息**: - 当用户在树视图中选择一个项时,需要处理NM_CLICK消息,获取选中的驱动器或目录,然后...

    二进制XML存储方案

    每个节点也包含一个节点头,表明该节点的名称以及大小。一般来说,用户不会直接接触到文件头和节点头这些信息。 如下为VC里的类声明: 在java里,定义了binxml.io包,其中的类、接口定义与以上相似。 你很容易想到...

    树型控件(视图)VC源代码:MultColumnTreeListControl

    MultColumnTreeListControl则解决了这个问题,它允许每个节点有多个列,每列可以显示不同的属性或信息,这样就能够在有限的空间内展示更多的信息。 MultColumnTreeListControl的主要特点包括: 1. **多列显示**:...

    注册表管理器

    1. **CtreeCtrl**:这是一个MFC控件,用于显示类似于Windows资源管理器的树形视图。在注册表管理器中,CtreeCtrl用于展示注册表的层级结构,用户可以通过它浏览不同级别的键。它可以动态加载和展开节点,以节省内存...

    VC 实现资源管理器

    当你在`TreeCtrl`中选择一个节点时,对应的`ListCtrl`会更新显示该节点下的文件和文件夹。 8. **性能优化**:如果文件数量很大,加载所有数据可能会导致性能问题。考虑使用虚拟列表视图(LVS_VIRTUAL),只在需要时...

Global site tag (gtag.js) - Google Analytics