Notification from CTreeCntrl
t_samal_c1@verifone.com
Monday, August 26, 1996
Environment: VC4.0, Win95
Hi,
How do i process notifications from a control in a dialog bar (floating and
docked)?
I've got a CResizableDlgBar derived from a CDialogBar, that contains a Tree
Control (Not as a member variable, its in the dlg. template).
How do i get notification from this tree control when a user changes the
selected node in the tree.
I need to be able to enable/disable menu items based on this.
I tried overriding OnNotify and OnChildNotify functions like :
BOOL CResizableDlgBar::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
TRACE("notified0");
switch (((NMHDR*)lParam)->code) {
case TVN_SELCHANGED:
UpdateDialogControls(GetParentFrame(),TRUE) ;
break ;
}
return CDialogBar::OnNotify(wParam, lParam, pResult);
}
BOOL CResizableDlgBar::OnChildNotify(UINT message, WPARAM wParam, LPARAM
lParam, LRESULT* pLResult)
{
if(message==WM_NOTIFY) {
TRACE("notified1");
switch (((NMHDR*)lParam)->code) {
case TVN_SELCHANGED:
UpdateDialogControls(GetParentFrame(),TRUE) ;
break ;
}
}
return CDialogBar::OnChildNotify(message, wParam, lParam, pLResult);
}
Notifications are getting generated - i checked with spy++, but i'm not
able to process them in the Dialogbar.
Any help would be recieved with thanks.
Samal Chandran.
Verifone Blr.
Dicky Singh -- Dicky@landmark.com
Wednesday, August 28, 1996
[Mini-digest: 3 responses]
add code to your mainframe class (CMainFrame when
using appwiz generated code) instead of class you derived from CDialogBar
-add ON_NOTIFY(TVN_SELCHANGED/ING, ID_WHATEVER, FnFoo) inside
BEGIN_MESSAGE_MAP - END_... after //}}AFX_MSG_MAP
-add method CMainFrame::FnFoo(NMHDR* pNMHDR, LRESULT* pResult)
----------
From: t_samal_c1@verifone.com[SMTP:t_samal_c1@verifone.com]
Sent: Monday, August 26, 1996 7:13 p
To: mfc-l@netcom.com
Subject: Notification from CTreeCntrl
Environment: VC4.0, Win95
Hi,
How do i process notifications from a control in a dialog bar (floating and
docked)?
I've got a CResizableDlgBar derived from a CDialogBar, that contains a Tree
Control (Not as a member variable, its in the dlg. template).
How do i get notification from this tree control when a user changes the
selected node in the tree.
I need to be able to enable/disable menu items based on this.
I tried overriding OnNotify and OnChildNotify functions like :
BOOL CResizableDlgBar::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
TRACE("notified0");
switch (((NMHDR*)lParam)->code) {
case TVN_SELCHANGED:
UpdateDialogControls(GetParentFrame(),TRUE) ;
break ;
}
return CDialogBar::OnNotify(wParam, lParam, pResult);
}
BOOL CResizableDlgBar::OnChildNotify(UINT message, WPARAM wParam, LPARAM
lParam, LRESULT* pLResult)
{
if(message==WM_NOTIFY) {
TRACE("notified1");
switch (((NMHDR*)lParam)->code) {
case TVN_SELCHANGED:
UpdateDialogControls(GetParentFrame(),TRUE) ;
break ;
}
}
return CDialogBar::OnChildNotify(message, wParam, lParam, pLResult);
}
Notifications are getting generated - i checked with spy++, but i'm not
able to process them in the Dialogbar.
Any help would be recieved with thanks.
Samal Chandran.
Verifone Blr.
--------------------
Dicky Singh, Dicky@Landmark.COM
Dragon Team. Landmark Systems Inc.
8000 Towers Crescent, Vienna VA 22182
-----From: "Rommel Songco"
Hi there!
The control messages are being sent to the parent of the dialog bar. Code
your message handlers there.
Regards,
Rommel Songco
rsongco@spectrasoft.com
-----From: "S. Balachandar"
Hi!,
Try this:
Add a message map entry like :
ON_NOTIFY( TVN_SELCHANGED, id-of your control, Member Fxn)
This will call Whenever a notification comes.
Please Note :
-------------------
The OnChildNotify() which you tried to use is not useful for handling =
Child Notifications in parent!!!.
The OnNotify()'s default Implementation tries to check the message =
map for appropriate member fxn to call!!!. So generally overloading =
OnNotify() is'nt really useful for this purpose.
Regards
Bala
-------------------------------------------------------------------------=
----------------------------------------
S. Balachandar e-mail : =
chandar@adca01.enet.dec.com
Software Engineer Phone : 3370445 Ext : 479
Digital Equipment (I) Ltd., Fax : 3371498
Digital House, 45/14 Tumkur Road, =20
Yeshwanthpur II Stage, =20
Bangalore 560 022. =20
| Вернуться в корень Архива
|