Re: How can i set the style of a CTreeCtrl within a CTreeView ?
- From: Joseph M. Newcomer <newcomer@xxxxxxxxxxxx>
- Date: Wed, 14 May 2008 23:39:04 -0400
They didn't. This is a documentation error, and I will add it to my list of documentation
errors.
joe
On Wed, 14 May 2008 10:40:01 -0700, PRMARJORAM <PRMARJORAM@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:
Exactly,Joseph M. Newcomer [MVP]
i was looking for a method something like SetStyle, then looking at the msdn
documentation for using CTreeCtrl, stated had to use SetWindowLong
I could not believe they had left something so fundamental out of the class
interface, they had not...
"Joseph M. Newcomer" wrote:
See below...
On Wed, 14 May 2008 08:01:02 -0700, PRMARJORAM <PRMARJORAM@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:
Im using a MFC CTreeView which fits nicely with what im trying to do. I need****
to change the style of the nested CTreeCtrl.
There is no easy way to do this, the documentation points to using
SetWindowLong.
void CMyTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
CTreeCtrl& tree = GetTreeCtrl();
HTREEITEM root_item = tree.InsertItem(CString("MyProject"));
HTREEITEM init_request = tree.InsertItem(CString("Item 1"), root_item);
HTREEITEM doc_package = tree.InsertItem(CString("Item 2"), root_item);
ASSERT(tree.GetSafeHwnd() != NULL );
::SetWindowLong(tree.GetSafeHwnd(),GWL_STYLE,TVS_HASLINES |TVS_LINESATROOT);
(a) this is not good style for setting styles. You have cleared ALL the style bits,
EXCEPT the two you set. At the VERY MINIMUM this code should say
DWORD style = tree.GetStyle();
style |= TVS_HASLINES | TVS_LINESATROOT;
::SetWindowLong(tree.GetSafeHwnd(), GWL_STYLE, style);
but why go through all that work? Instead, just call
tree.ModifyStyle(0, TVS_HASLINES | TVS_LINESATROOT);
which should be sufficient (no need to get the old style, etc.)
joe
****
}Joseph M. Newcomer [MVP]
Iv tried using this to set the styles as in the above code, but the program
gets corrupted.
How can i set the style of a CTreeCtrl nested in a CTreeView?
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.
- References:
- How can i set the style of a CTreeCtrl within a CTreeView ?
- From: PRMARJORAM
- Re: How can i set the style of a CTreeCtrl within a CTreeView ?
- From: Joseph M . Newcomer
- Re: How can i set the style of a CTreeCtrl within a CTreeView ?
- From: PRMARJORAM
- How can i set the style of a CTreeCtrl within a CTreeView ?
- Prev by Date: Re: Designing a View
- Next by Date: Re: Application gets slower when having ~50 dialogs in memory.
- Previous by thread: Re: How can i set the style of a CTreeCtrl within a CTreeView ?
- Next by thread: Re: How can i set the style of a CTreeCtrl within a CTreeView ?
- Index(es):
Relevant Pages
|