Callback on CListCtrl
Colin Angus Mackay -- colin.angus.mackay@dial.pipex.com Tuesday, June 25, 1996 [MFC 4.0 / Win95 & WinNT ] I have seen that you can get a CListCtrl to receive its data from some function and not have it store the information in the list control itself, which would be infinitly more useful to my situation than the current setup. I have looked through the docs and am now really confused about how to go about this. I have a class CDataPoints which contains the information that I wish to see in the list. How do I get the list to access this information? Each object of this class is equivalent to one line in the list view. Each contains multiple numbers of columns. What I really want to know is how to I set up the list to call the class (or rather functions within the class) to get the information out of it, and how do I make sure that each line in the list calls the right object of type CDataPoints class and each column to call the right function, or send information to a function as to what data is needed? Thanks in advance for any help you may be able to offer, Colin. colin.angus.mackay@dial.pipex.com
Roger Onslow -- Roger_Onslow@compsys.com.au Saturday, June 29, 1996 Colin wrote >What I really want to know is how to I set up the list to call the class >(or rather functions within the class) to get the information out of it, >and how do I make sure that each line in the list calls the right object of >type CDataPoints class and each column to call the right function, or send >information to a function as to what data is needed? Quick answer here (I'm rather busy today) When adding rows to the list, specify that you want callback and then put a pointer to the item object for the row in the lParam field (cast to a DWORD). When handling the Getdispinfo message, you have access to the lParam field for that row, can cast it back to a pointer to your data and get the appropriate info by calling class members. Alternatively, store a pointer to the whole object (rather than the individual items in it) in you dialog (or a class derived from CListCtrl) and then store an index into that object in lParam field. You can then get at the item in you Getdispinfo handle by using the pointer to the whole object and the lParam index. If you need further help, I can mail you more detailed instructions and/or sample code. Hope this helps /|\ Roger Onslow ____|_|.\ ============ _/.........\Senior Software Engineer /CCC.SSS..A..\ /CC..SS...A.A..\ Computer /.CC...SS..AAA...\ Systems /\.CC....SSAA.AA../ Australia \ \.CCCSSS.AA.AA_/ \ \...........// Ph: +61 49 577155 \ \...._____// Fax: +61 49 675554 \ \__|_/\_// RogerO@compsys.com.au \/_/ \//
| Вернуться в корень Архива |