VC6.0中的Tree Control控件,如何给有的节点设checkbox,而有的节点不设?具体代码如何实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC6.0中的Tree Control控件,如何给有的节点设checkbox,而有的节点不设?具体代码如何实现?相关的知识,希望对你有一定的参考价值。

1、如果使用Checkbox属性,那么要么全有,要么全无,不能单个设置。
2、需要自定义控件,通过Item的图标来标识是否checkbox,或者你恰好将图标绘制的和复选方框一摸一样。鼠标点击的时候通过切换图片来达到视觉上复选、取消的效果。
3、可以使用BCGP界面库中Tree控件。追问

关于第二点,可不可以详细一点讲?我可以给你追加分数

追答

1、每个Item都可以在ImageList中对应索引号,所以可以动态的改变索引号来改变Item的图标。
2、最好从网上下载一些例子作参考,一步一步来。先达到使用的目的,然后深入研究实现。

追问

我不是要改变图标,我需要产生实实在在的复选框,而且能点击。

追答

1、其实,你想想,实实在在的复选框不也是画出来的,只不过是可以相应鼠标点击消息。
2、如果能够在很相似的图片上响应鼠标点击,那与实实在在又有什么区别呢?
3、默认的TreeControl中不支持单独定义复选框的行为。

参考技术A 在创建的时候添加属性TVS_CHECKBOXES,或者通过ModifyStyle(0, TVS_CHECKBOXES)增加该属性。追问

你说的那个是全部添加checkbox,我只要部分节点添加,您有好的办法吗?

参考技术B 可以从CButton派生一个你自己的类,假设为CButtonEx
然后响应CButtonEx的WM_LBUTTONDOWN,
OnLButtonDown就相当于PreChange
另外,虚机团上产品团购,超级便宜

vc6.0如何使用getwindowtext函数获取edit控件中的文本内容

用createwindow创建了窗体和一个button和一个edit控件,可是如何在单击button时,将edit控件里的文本内容用textout函数打印在窗体上呢?
getwindowtext函数怎么用?如何得到edit空间里的内容?得到后存放在哪里?
还有如何在WM_COMMAND里判断单击的是哪一个控件,如果是button才起作用。
最好有可用的代码,谢谢列位了!
能解决问题的回答追加分数。
不是mfc啊,是win32应用程序,用winapi的。

CWnd::GetWindowText(LPTSTR lpszString, int nMaxCount)
CWnd::GetWindowText(CString& rString)
CWnd::GetWindowText(LPTSTR lpszStringBuf, int nMaxCount)
三种形式,使用得最简单和频繁的应该就是第二种了吧(个人而言)
使用实例:
CEdit my_edit;
CString string;
my_edit.GetWindowText(string);
就得到了编辑框中的字符串

在WM_COMMAND中可以将消息,函数及控件ID联系起来,可以利用编辑框的EN_SETFOCUS消息来达到你想要的结果。
例如:
头文件中添加:
afx_msg void OnSetfocusEdit1(); //添加
应用文件中添加消息影射:
ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)追问

你说的是mfc吗?

追答

不是 MFC可以通过ClassWizard自动添加 我说的是单文档等非MFC程序,可以通过手动添加实现相同的效果

参考技术A 看到你的问题我感到有点纠结,没弄明白什么叫“修改状态”。
GetDlgItem (IDC_EDIT1)->SetFocus();//这里可以使编辑框变成可输入状态,但用的地方一定要用对,放在OnInitDialog()中就不行。
你要的修改状态是不是这样子的:比如说你原来的框里有字符abc,修改状态也就是编辑框变成可输入状态,而且abc是选定的(颜色变蓝色),如果你输入字符,abc就会被替换成你输入的字符。
CString str="abc";
CEdit *p=(CEdit*)GetDlgItem(IDC_EDIT1);
p->SetFocus();
p->SetWindowText(str);
p->SetSel(0,-1);
当然,换成p->SetSel(str.GetLength(),-1);abc不会被选定,输入光标在abc的最后。
不知道你是不是这个意思。本回答被提问者和网友采纳

以上是关于VC6.0中的Tree Control控件,如何给有的节点设checkbox,而有的节点不设?具体代码如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

VC6.0中基于对话框的MFC EXE中的Tab Control控件如何使用???

VC6.0中 如何将 LIST control中的信息读取到文本编辑框中

vc6.0如何使用getwindowtext函数获取edit控件中的文本内容

关于MFC中Tree Control控件中的OnSelchanged消息是不是有bug?

VC6.0,如何从sql2000数据库中的某个表读取时间数据,显示在DateTimePicker控件上

树控件(Tree Control),标签控件(tab control)