|
Call CTreeCtrl::GetItem() on the "parent2" item. Then call CTreeCtrl::InsertItem() to insert the new "child" item below that.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
thx 2 you all for your help. Can a tree control access another atttributes of a data? I am planning to make a tree control from a list of data
for example, I am a list of datas, each of data consists of Name, adrress, phone number, etc and I want to make the tree control based on the name. Does it exist any command to access/ display other attributes by clicking the tree element?
thx..
|
|
|
|
|
After inserting a node in the tree control, use SetItemData() to associate that node with the item in the list.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
Can u give me some examples pls?because I'm still new in MFC and lack of experience in programming.
thx
|
|
|
|
|
|
thx...I have read the link u gave me, but I think it is not what I' looking for
for example I have a data base file that consist name,age,address,phone number,etc and I want to make a tree control based on the name for example. And then if I click the tree control attributes, I can access the other database attributes such as the age,address,phone,etc. Is there any function or maybe some links to help me..because I'm so confused.
thx...
|
|
|
|
|
One way would be to read the records from the database into a data structure and populate the tree control from that data structure.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
thx...I also have some problem on populating the tree control. I want to group the tree attributes if there are same occurences. I have tried to make the function, but when I run it, my program become not responding.
here is my function:
HTREEITEM CCDBMainDlg::LoadTree(CStringArray& tree)
{
m_hItem = m_treeCDB.GetNextItem(m_hItem,TVGN_ROOT);
if(m_treeCDB.ItemHasChildren(m_hItem))
{
m_hItem = m_treeCDB.GetChildItem(m_hItem);
while(m_treeCDB.GetItemText(m_hItem).Compare(tree.GetAt(12))!=NULL || m_hItem != NULL)
{
m_hItem = m_treeCDB.GetNextSiblingItem(m_hItem);
}
if(m_treeCDB.ItemHasChildren(m_hItem))
{
m_hItem = m_treeCDB.GetChildItem(m_hItem);
while(m_treeCDB.GetItemText(m_hItem).Compare(tree.GetAt(11))!=NULL || m_hItem != NULL)
{
m_hItem = m_treeCDB.GetNextSiblingItem(m_hItem);
}
if(m_treeCDB.ItemHasChildren(m_hItem))
{
m_hItem = m_treeCDB.GetChildItem(m_hItem);
while(m_treeCDB.GetItemText(m_hItem).Compare(tree.GetAt(0))!=NULL || m_hItem != NULL)
{
m_hItem = m_treeCDB.GetNextSiblingItem(m_hItem);
}
}
else
{
m_hItem = m_treeCDB.InsertItem(tree.GetAt(0),0,1,m_hItem);
}
}
else
{
m_hItem = m_treeCDB.InsertItem(tree.GetAt(11),0,1,m_hItem);
m_hItem = m_treeCDB.InsertItem(tree.GetAt(0),0,1,m_hItem);
}
}
else
{
m_hItem = m_treeCDB.InsertItem(tree.GetAt(12),0,1,m_hItem);
m_hItem = m_treeCDB.InsertItem(tree.GetAt(11),0,1,m_hItem);
m_hItem = m_treeCDB.InsertItem(tree.GetAt(0),0,1,m_hItem);
}
m_hItem = m_treeCDB.InsertItem(tree.GetAt(1),0,1,m_hItem);
m_treeCDB.EnsureVisible(m_hItem);
return m_hItem;
}
pls help.
thx.
|
|
|
|
|
firebolt77 wrote:
...but when I run it, my program become not responding.
One of the while loops is not ending. You'll need to set a breakpoint on each one, run the program using F5, and note which breakpoint was not hit. That'll tell you which loop is faulty.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
can anybody tell me what is Account operator.
|
|
|
|
|
Other than responding with "Someone that operates the account," you'll need to be a bit more specific.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
|
hi
|
|
|
|
|
since this is the Visual C++ message board and not some chat-site.
"Hello World!" would`ve been at least a little more appropriate than just plain "hi"
Other than that, when starting a new thread in this message board, please just post C++ related questions. There are message-boards for non programming related topics in the Lounge and Soapbox...
Cheers...
And since you look to be new here: Welcome!
|
|
|
|
|
Maybe jitendra is just a material person in a material world...
Oh, wait, that belongs in the "sucky music" forum...
|
|
|
|
|
It is easy to use exported functions from dll using LoadLibrary and GetProcAddress.
however it seems that there is no way to use exported functions from exe(executable application).
In other words, how can the communication between two applications(such as, function call) be done?
thanks
|
|
|
|
|
I think the only way to do that is RPC (Remote Procedure Call) used for communication of application running on remote hosts. I don't think there is another way to export functions from an executable, that's the job for a dynamic library only. A more common way for communication between apps is shared memory or pipes if they are running on the same host as RPC is a bit 'expensive' on CPU considering it adds some overhead.
Themis
|
|
|
|
|
There are many articles about IPC on CodeProject.
Don't try it, just do it!
|
|
|
|
|
Hi, I 'd like to ask an MFC related question. I have an SDI application and I want to show a modal dialog just when my main frame appears on screen. Which event of my CMainFrm should I register for that? I've tried ON_WM_CREATE and ON_WM_SHOWWINDOW but the first is called before any drawing has been done and the latter doesn't get invoked at all! Could you help me plz?
Themis
|
|
|
|
|
Hi,
Create a timer in Mainframe with 1 as timer interval. Add handler to WM_TIMER message and domodal the dialog in it. Dont forger to kill the Timer before u show the dialog.
Bye,
Cool Ju
|
|
|
|
|
When exactly do you want your dialog to appear? Just before or just after the mainframe appears on screen?
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
Just after the mainframe appears.
To Cool Jul: I don't think the timer is a good idea, because the initilization in a slow machine may take more time than in mine pc. Thanks though!
Themis
|
|
|
|
|
Here's a thought:
1) Create a user defined message, that you can post to display the dialog.
2) In the main frames OnSetFocus(), just post the message (post not send).
If there is already a command that allows the user to display the dialog then you can skip step 1 and just post that messge.
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
Hi,
I am using DDEML. What if I want my DDEML Server application to receive some data from a Client, process it and send back the result to client.
What I am doing so far is:
I send some data from Client to Server through XTYP_POKE transaction.
In Server's DDECallBack function, I store this data in some static variables.
Then I send an XTYP_REQUEST transaction from Client to Server, to process the data sent in XTYP_POKE transaction.
The Server application, on receiving the XTYP_REQUEST transaction, process the data received in XTYP_POKE transaction and returns the handle of result.
What I fear here is that what if the Server receives another XTYP_POKE transaction in between above XTYP_POKE and XTY_REQUEST transactions.
Means, When a client sends "A" data to Server through XTYP_POKE, an another Client sends "B" data to Server before Server could get and process the XTYP_REQUEST from first Client, the Server may generate and return wrong data.
Is this right? If yes, what I could do to prevent this? Is there a way where Client could send and receive data through XTYP_REQUEST itself?
Please help. Quick replies are appriciated.
Thanks In Advance,
Vipin.
|
|
|
|
|
my app create a process(by CreateProcess ) and hang up itself unitl child process was exit,but child process may create a other process....
I love programming
|
|
|
|