Print Page | Close Window

CMarkupTreeCtrl::SetItemText...

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Controls
Forum Description: Topics Related to Codejock Controls
URL: http://forum.codejock.com/forum_posts.asp?TID=15120
Printed Date: 28 September 2024 at 7:40am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: CMarkupTreeCtrl::SetItemText...
Posted By: znakeeye
Subject: CMarkupTreeCtrl::SetItemText...
Date Posted: 04 September 2009 at 9:55am
Consider this:
 
HTREEITEM CMarkupTreeCtrl::AddItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent/* = TVI_ROOT*/, HTREEITEM hInsertAfter/* = TVI_LAST*/)
{
    CXTPMarkupUIElement* pUIElement = Parse(lpszItem);
    ...
 
 
Now I want to update the text, so I implemented SetItemText. The problem is: how do I free the memory held by the previous CXTPMarkupUIElement object? The destructor is private!
 
----------------------------------------------------------------------------------------
BOOL CMarkupTreeCtrl::SetItemText(HTREEITEM hItem, LPCTSTR lpszItem)
{
    CXTPMarkupUIElement* pOldElement = (CXTPMarkupUIElement*)GetItemData(hItem);
    SetItemData(hItem, NULL); // Not sure if this is necessary?
    // FREE pOldElement??
 
    BOOL retVal = FALSE;
    CXTPMarkupUIElement* pUIElement = Parse(lpszItem);
    if (pUIElement)
        retVal = CXTTreeCtrl::SetItemText(hItem, GetInnerText(pUIElement));
    else
        retVal = CXTTreeCtrl::SetItemText(hItem, lpszItem);
   
    SetItemData(hItem, (DWORD_PTR)pUIElement);
   
    return retVal;
}
 



Replies:
Posted By: Oleg
Date Posted: 04 September 2009 at 11:08am

Hi,

 
Call MARKUP_RELEASE(pOldElement) or XTPMarkupReleaseElement();


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: znakeeye
Date Posted: 07 September 2009 at 6:26am
Thanks!
 
Btw, is the call to SetItemData(NULL) dangerous or can you assume that WM_PAINT is not sent at this time?


Posted By: Oleg
Date Posted: 07 September 2009 at 6:38am

Hi,

Don't think Microsoft do this, but guess you have to test it.


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net