15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Header Ctrl changes in a CListView

David Doughty -- dave_doughty@MENTORG.COM
Wednesday, April 17, 1996


VC4.0/Win '95

I have derived a class from CListView and am attempting to receive 
notifications when the user changes the header control. Specifically, when 
the user resizes a column in the report view I'd like to take some action.

I have searched MSDN etc. and discovered a message HDN_ITEMCHANGED but 
can't figure out how to intercept it or understand if that is the best 
mechanism in MFC.






dal.ghotra@rebis.com
Friday, April 19, 1996


     
     Try something like:
     (Here my CMyListView was derived from CListView)
     
     BOOL CMyListView::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* 
                                                                pResult) 
     {
         switch (((LPNMHDR)lParam)->code)
       {
                // The listview control passes along all the notifications 
                //  sent to it by the header control when it is in report 
                // view.  
     
       case HDN_ENDTRACKW:
                TRACE0("\nHeader end track - when user finishes dragging");
                {
                        HD_NOTIFY *phdn = (HD_NOTIFY*)lParam;
     
                        // New width is (LPARAM)phdn->iItem)
                }
                break;
     
        case HDN_BEGINTRACKW:
                TRACE0("\nHeader begin track");
                break;
        case HDN_TRACKW:
                TRACE0("\nHeader dynamic tracking");
                break;
     
        case HDN_ITEMCHANGEDW:
                TRACE0("\nHeader item changed");
                break;
        case HDN_ITEMCHANGINGW:
                TRACE0("\nHeader item changing");
                break;
     
        case HDN_ITEMCLICKW:
                TRACE0("\nHeader click");
                break;
        case HDN_ITEMDBLCLICK:
                TRACE0("\nHeader dblclick");
                break;
     
        }
     
        return CListView::OnNotify(wParam, lParam, pResult);
     }
     
        The 'W' at the end of each message denotes the UNICODE versions.

dal.ghotra@rebis.com

______________________________ Reply Separator _________________________________
Subject: Header Ctrl changes in a CListView
Author:  mfc-l@netcom.netcom.com at Internet
Date:    4/19/96 4:38 AM


VC4.0/Win '95
     
I have derived a class from CListView and am attempting to receive 
notifications when the user changes the header control. Specifically, when 
the user resizes a column in the report view I'd like to take some action.
     
I have searched MSDN etc. and discovered a message HDN_ITEMCHANGED but 
can't figure out how to intercept it or understand if that is the best 
mechanism in MFC.
     
     
     



Niels Ull Jacobsen -- nuj@kruger.dk
Saturday, April 20, 1996

At 08:44 17-04-96 -0700, you wrote:
>
>VC4.0/Win '95
>
>I have derived a class from CListView and am attempting to receive=20
>notifications when the user changes the header control. Specifically, wh=
en=20
>the user resizes a column in the report view I'd like to take some actio=
n.
>
>I have searched MSDN etc. and discovered a message HDN_ITEMCHANGED but=20
>can't figure out how to intercept it or understand if that is the best=20
>mechanism in MFC.

As far as I can tell, it's HDN_ENDTRACK you'd like to intercept.
Unfortunately, you don't know the Id of the header control (and even if y=
ou
found out it was 1001, there's no guarantee it will stay so).
So you can't use ON_NOTIFY(HDN_ENDTRACK, someID, OnHdnEndTrack).
You can either use ON_NOTIFY_RANGE(HDN_ENDTRACK, 0, 0xFFFFFFFF, OnHdnEndT=
rack),
or you can override the OnChildNotify of your view.
Niels Ull Jacobsen, Kr=FCger A/S (nuj@kruger.dk)
Everything stated herein is THE OFFICIAL POLICY of the entire Kruger grou=
p
and should be taken as legally binding in every respect. Pigs will grow
wings and fly.








Mike Blaszczak -- mikeblas@msn.com
Wednesday, April 24, 1996

----------
From: 	owner-mfc-l@netcom.com on behalf of Niels Ull Jacobsen
Sent: 	Saturday, April 20, 1996 03:06

> As far as I can tell, it's HDN_ENDTRACK you'd like to intercept.

It's actually HDN_BEGINTRACK.

>Unfortunately, you don't know the Id of the header control (and even if you
> found out it was 1001, there's no guarantee it will stay so).

The ID is zero, and it will always be zero--if it is there.

.B ekiM
TCHAR sz[] = _T("Check twice and save a life; motorcycles are everywhere!");







| Вернуться в корень Архива |