请教CTreeCtr 内用 CheckBox的问题???
我的问题是,我编写的一个函数,用与读保存的设置,此设置读出后,应该在对应的树的结点前面的方框(我定义成checkbox风格的)打勾,或者置空,
本想让他在对话框的初始化函数OnInitDialog()中调用这个函数,以便在打开对话框后,看到上次的设置信息,明明本函数已经调用成功,为什么不出现响应的小勾呢,后来我添加了按钮,响应这个函数,结果是成功的,这证明该函数是正确的,
为什么在OnInitDialog()中响应,不行呢
[解决办法]
在OnInitDialog()设置,不行的话可能是因为窗口还没有完成初始化
[解决办法]
自己定义一个消息处理函数试试
即在
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
PostMessage(....);//发送一条消息--引发你的处理函数
}
[解决办法]
If you want to use this style, you must set the TVS_CHECKBOXES style with SetWindowLong after you create the treeview control, and before you populate the tree. Otherwise, the checkboxes might appear unchecked, depending on timing issues.
depending on timing issues.这是MSDN上的说明,看来是要在适当的时候去设置一下.
你在插入结点的时候直接插入一个结构,注明它的状态试下看.如果不行的话,那只能定时刷新,或更改它的回调函数.
[解决办法]
你setcheck后,getcheck看一下结果,还有你要从clistctrl的MSDN中仔细看一下,可能有什么特殊用法
[解决办法]
刚好我在做熊猫病毒免疫程序用到了CtreeCtrl,希望能给你个帮助:
在制造ROOT前加上:
m_nDiskTree.ModifyStyle( TVS_CHECKBOXES, 0 );
m_nDiskTree.ModifyStyle( 0, TVS_CHECKBOXES );
HTREEITEM hRoot=m_nDiskTree.InsertItem ( "我的电脑 ",2,2,0,0);
就行了!