积累的VC编程小技巧之树操作

1.如何在TreeList中加图标?

  [问题提出]
  请问treeview控件和treectrl控件的用法有何不同呢?向如何imagelist控件中加图象呀?
  [解决方法]
  1)
    HICON hicon[8];
    m_imageList.Create(16,16,0,8,8);
    hicon[0]=AfxGetApp()->LoadIcon(IDI_ICON0);
    hicon[1]=AfxGetApp()->LoadIcon(IDI_ICON1);
    hicon[2]=AfxGetApp()->LoadIcon(IDI_ICON2);
    hicon[3]=AfxGetApp()->LoadIcon(IDI_ICON3);
    hicon[4]=AfxGetApp()->LoadIcon(IDI_ICON4);
    hicon[5]=AfxGetApp()->LoadIcon(IDI_ICON5);
    hicon[6]=AfxGetApp()->LoadIcon(IDI_ICON6);
    hicon[7]=AfxGetApp()->LoadIcon(IDI_ICON7);
    for(int n=0;n<8;n++)
        m_imageList.Add(hicon[n]);

    CTreeCtrl *pTree=(CTreeCtrl *)GetDlgItem(IDC_TREE);
    pTree->SetImageList(&m_imageList,TVSIL_NORMAL);

  2)
    CImageList cil1;
    cil1.Create(32,32,TRUE,2,2);
    cil1.Add(pApp->LoadIcon(IDI_DAO1));
    cil1.Add(pApp->LoadIcon(IDI_DAO2));
    cil1.Add(pApp->LoadIcon(IDI_DAO3));
    cil1.Add(pApp->LoadIcon(IDI_DAO4));
    cil1.Add(pApp->LoadIcon(IDI_DAO5));
    cil1.Add(pApp->LoadIcon(IDI_DAO6));
    cil1.Add(pApp->LoadIcon(IDI_DAO7));
    cil1.Add(pApp->LoadIcon(IDI_DAO8));
    cil1.Add(pApp->LoadIcon(IDI_DAO9));
    
    //设置图象列表
    m_list.SetImageList(&cil1,LVSIL_NORMAL);

 

2.如何选择CTreeCtrl中的节点文本进行编辑?

在向CTreeCtrl中加入一项后,有什么方法可以编辑该节点的文本呢?

首先设置你的CcompTreeCtrl具有TVS_EDITLABELS属性.在设计时用控件属性来设置在运行时用GetStyle()/SetStyle()成员函数来设置.然后请看下述代码:

HTREEITEM CCompTreeCtrl::AddSet()
{
static int setCnt =3D 1;
HTREEITEM hItem;
CString csSet;

//create text for new note: New Set 1, New Set 2 ...
csSet.Format( _T( "New Set %d" ), setCnt++ );

hItem =3D InsertItem( csSet, IMG_CLOSEDFOLDER, IMG_CLOSEDFOLDER );

if( hItem !=3D NULL )
           EditLabel( hItem );

return hItem;
}

 

时间: 2024-08-31 06:09:02

积累的VC编程小技巧之树操作的相关文章

积累的VC编程小技巧之按钮

1.资源种创建的控件,对其属性的动态控制: 在对话框类的头文件里创建所要改变属性的控件的对象,如要改变一个Button(其ID为IDC_MyButton)的属性,则需创建Cbutton的对象m_button.然后在.cpp中的DoDataExchange函数里将Button的ID和创建的对象绑定在一起: //{{AFX_DATA_MAP(CPrintDlg)               // NOTE: the ClassWizard will add DDX and DDV calls her

积累的VC编程小技巧之标题栏和菜单

1.窗口最大最小化按纽的控制 ①怎样在程序开始的时候让它最大化? ②vc++做出来的exe文件在窗体的右上方是没有最大化和最小化按钮的,怎样实现这一功能? ③如何在显示窗口时,使最大化按钮变灰?   ①在App类里的C-App::InitInstance()中把m_pMainWnd->ShowWindow(SW_SHOW)改成m_pMainWnd->ShowWindow(SW_MAXIMIZE); ②在CreateWidnow时用WS_SYSMENU|WS_MINIMIZEBOX|WS_MAX

积累的VC编程小技巧之框架窗口及其他

1.修改主窗口风格 AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名.窗口是叠加型的.可改变窗口大小等.要修改窗口的缺省风格,需要重载CWnd::PreCreateWindow(CREATESTRUCT& cs)函数,并在其中修改CREATESTRUCT型参数cs.CWnd::PreCreateWindow 函数先于窗口创建函数执行.如果该函数被重载,则窗口创建函数将使用CWnd::PreCreateWindow 函数返回的CREATESTRUCT

积累的VC编程小技巧之编辑框

1.如何让对话框中的编辑框接收对话框的消息 ////////////////////////////////////////////////// 如何让对话框中的CEdit控件类接收对话框的消息////////////////////////////////////////////////1.在对话框中增加一个ID 为IDC_EDIT1的CEdit1控件2.通过ClassWizard 生成一个基于CEdit的新类CMyEdit,CMyEdit  m_wndEdit;3.在对话框OnInitDia

积累的VC编程小技巧之打印相关

1.修改打印预览的ToolBar 为AFX_IDD_PREVIEW_TOOLBAR这个ID创建一个DialogBar.则系统就会用新创建的DialogBar代替系统默认的那个 2.关于打印 1.要打印哪个视就 ((CMainFrame*)AfxGetMainWnd())->m_wndSplitter.SetActivePane(...) //要打印的那个视对应的Pane   2.有一个单文档工程,文档窗口被切分:左视图由CTreeView 的派生类管理,右视图由CListView 的派生类CMy

积累的VC编程小技巧之图标、光标及位图

1.图标透明 (1).Windows中的图标其实是有两个图像组成的,其中一个用于与它要显示的位置的图像做"AND"操作,另一个作"XOR"操作. 透明:用"白色"AND,用"黑色"XOR 反色:用"白色"AND,用"白色"XOR 正常色:用"黑色"AND,用正常颜色XOR. (2). WIN9X中好像是对像素的操作实现透明的 WIN2K中就有API直接实现透明了! W

积累的VC编程小技巧之组合框

1.如何正确的得到ComBox的指针 CComboBox *mComb = (CComboBox*)GetDlgItem(IDC_DuanCB); CComboBox *mComb = (CComboBox*)::GetDlgItem(m_hWnd,IDC_DuanCB);   2.CComboBox控件详解 CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list).  

积累的VC编程小技巧之滚动条

1.设置滚动条的滚动大小 创建一个基于CScrollview的SDI Project(在第6步中选CScrollview) 若你已创建了,这步可以省略. 然后: 改为如 void CTestView::OnInitialUpdate() { CScrollView::OnInitialUpdate();  CSize sizeTotal; // TODO: calculate the total size of this view sizeTotal.cx = 1024;  //改这两个 siz

积累的VC编程小技巧之工具提示

1.用鼠标移动基于对话框的无标题栏程序的简单方法 void CVCTestDlg::OnLButtonDown(UINT nFlags, CPoint point) {    //一句话解决问题     SendMessage(WM_SYSCOMMAND,0xF012,0);    CDialog::OnLButtonDown(nFlags, point);}   2.对话框消息映射 有对话框A,B从A中发消息给B然后B处理.准备工作,先定义消息,如下#define WM_B_NOTIFY WM