|
|
Hai
How can we set images for items on CtreeCtrl
Thanks in advance.
|
|
|
|
|
SetItem( TVITEM* pItem )
Regards
Abhi Lahare
|
|
|
|
|
you need to use
CImageList* SetImageList( CImageList * pImageList, int nImageListType );
before you do insertitem and in that pass the index in the imagelist you need to display .
Regards,
FarPointer
Blog:FARPOINTER
|
|
|
|
|
See SetItem and SetImageList
whitesky
|
|
|
|
|
Thanks for your reply.I got it.
But when I insert items I am getting all the items as root items.How can I insert child items in to the tree
-- modified at 3:02 Monday 10th July, 2006
|
|
|
|
|
Can you show how you to use this function
whitesky
|
|
|
|
|
BOOL CBmDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CImageList list;
list.Create(16, 16, ILC_COLOR8, 0, 4);
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
list.Add(&bm, RGB(0, 0, 0));
m_tree1.SetImageList(&list,TVSIL_NORMAL);
m_tree1.InsertItem("Image1");
m_tree1.InsertItem("Image2");
HTREEITEM h1,h2;
h2=m_tree1.GetNextItem(h1,TVGN_FIRSTVISIBLE);
m_tree1.SetItemImage(h2,0,0);
return TRUE;
}
|
|
|
|
|
I test this code and it work (you need to a resource(bitmap))
<code>
TVINSERTSTRUCT TreeCtrlItem;
CBitmap Bmp;
CImageList *m_ImageList;
HTREEITEM hTreeItem1;
m_ImageList = new CImageList();
m_ImageList->Create(50,50, ILC_COLORDDB,0,0);
Bmp.LoadBitmap(IDB_BITMAP1);
m_ImageList->Add(&Bmp,RGB(155,155,155));
TreeCtrlItem.hParent = TVI_ROOT;
TreeCtrlItem.hInsertAfter = TVI_LAST;
TreeCtrlItem.item.mask = TVIF_TEXT |TVIF_IMAGE|TVIF_SELECTEDIMAGE;
TreeCtrlItem.item.pszText = CA2T("(A)");;
TreeCtrlItem.item.lParam = 0;
TreeCtrlItem.item.iImage=0;
TreeCtrlItem.item.iSelectedImage=0;
hTreeItem1 = m_Tree1.InsertItem(&TreeCtrlItem);
m_Tree1.SetImageList(m_ImageList, LVSIL_NORMAL);
TreeCtrlItem.hParent = hTreeItem1;
TreeCtrlItem.item.pszText = CA2T(" (B)");
TreeCtrlItem.item.lParam = 1;
TreeCtrlItem.item.iImage=1;
TreeCtrlItem.item.iSelectedImage=1;
m_Tree1.InsertItem(&TreeCtrlItem);
m_Tree1.SetImageList(m_ImageList, LVSIL_NORMAL);
whitesky
|
|
|
|
|
Thank you very much
|
|
|
|
|
I have an application that uses threads. The purpose of one thread is to Listen for any communication request from other machines. This has an infinite while loop. There have to be 2 stopping conditions for the same. One is when it receives a Stop boolean variable, it stops the whole application.
The other condition I want to add is that if it sees a global boolean variable is set (which needs to be set by some other thread of the same application) it should end that particular listen thread only (not the whole application). If I use _endthreadex() how will the other thread form which the boolean variable was set know that the listen thread has actually ended?
I was using TerminateThread() to end the Listen thread because it accepts the handle of the thread as an argument so that I was able to end the thread from some other thread but I see it is not cleaning up after Terminating the thread.
|
|
|
|
|
Programmer Anju wrote: The other condition I want to add is that if it sees a global boolean variable is set (which needs to be set by some other thread of the same application) it should end that particular listen thread only (not the whole application). If I use _endthreadex() how will the other thread form which the boolean variable was set know that the listen thread has actually ended?
program listen thread something line this
g_bEndListenThread=FALSE;
while(1)
{
if(g_bEndApplication==TRUE)
// End listen thread
return 0; or _endthreadex();
if(g_bEndListenThread==TRUE)
// End listen thread
return 0; or _endthreadex();
// Do normal functioning
}
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Programmer Anju wrote: The other condition I want to add is that if it sees a global boolean variable is set (which needs to be set by some other thread of the same application) it should end that particular listen thread only (not the whole application). If I use _endthreadex() how will the other thread form which the boolean variable was set know that the listen thread has actually ended?
program listen thread something line this
g_bEndListenThread=FALSE;
while(1)
{
if(g_bEndApplication==TRUE)
// End listen thread
return 0; or _endthreadex();
if(g_bEndListenThread==TRUE)
// End listen thread
return 0; or _endthreadex();
// Dyour Thread functioning
}
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
If a thread or process terminates, the OS-internal thread/process object is set to signaled state - the state you can use to wait for with e.g. WaitForSingleObject(). So if hThread is your thread handle, the following would wait until the thread has actually terminated:
WaitForSingleObject( hThread, INFINITE )
The point is that you might also use the waiting functions to test if an object (in this case the thread) is in signaled state (in this case has terminated) by just using 0 as the timeout value:
if( WaitForSingleObject( hThread, 0 ) == WAIT_TIMEOUT ) {
// not terminated yet
}
--
Daniel Lohmann
http://www.losoft.de
(Hey, this page is worth looking! You can find some free and handy NT tools there )
|
|
|
|
|
Daniel Lohmann wrote: WaitForSingleObject(). So if hThread is your thread handle, the following would wait until the thread has actually terminated:
WaitForSingleObject( hThread, INFINITE )
The point is that you might also use the waiting functions to test if an object (in this case the thread) is in signaled state (in this case has terminated) by just using 0 as the timeout value:
In call of TerminateProcess api, system will close the thread, without releasing any of it memory and related stuff. there might be case the system hang indefinatly at the call of WaitForSingleObject api!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Hai,
I need to disable the pushbutton Retrieve on a dialogbox if no item selected in the list.My problem is iam not able to find the dialog box in the resource editor.
Is there any other way to create a dialogbox otherthan resource editor.
|
|
|
|
|
to disable the pushbutton if no item is selected in the list you can do this
m_button.EnableWindow(false);
if you select an item enable the window
m_button.EnableWindow();
For your question on is there any other way.......editor
See Here[^]
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
m_button.EnableWindow(false);
if you select an item enable the window
m_button.EnableWindow();
That means i need to disable the button in list control ?
Actually iam not able to find the dialogbox which contains this List and pushbuttons.
I couldnt find it in resource editor ..
Plz help me regarding this.
|
|
|
|
|
You need to disable the button when you are showing the dialog.
Can you tell how are you creating your dialog? (using which API if not in the resource editor)
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
ya this is already released project and it is in the maintenance phase, that too iam new to this project.
so i have searched all dialogboxes in this project through resource editor, But i couldnt find that, so iam thinking that it might be created not by using resource editor.
unless i find the dialogbox i cant do anything, But iam not getting help from anywhere.
Could u help me plz.
|
|
|
|
|
yeah sure. I will try my level best to solve your problem
First search in your code that are you using the CreateDialog() to create the dialog or CreateDialogIndirect()
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
iam searching for CreateDialog
|
|
|
|
|
CreateDialog macro creates a modeless dialog box but my dialog is modal dialog.
|
|
|
|
|
Krishnatv wrote: Is there any other way to create a dialogbox otherthan resource editor.
yeah you can create the Dialog box by programming too.. read documentation of CreateDialogIndirect api in MSDN
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
yes see CreateDialogIndirectParam and CreateDialogIndirectParam
whitesky
|
|
|
|