Keeping CListCtrl selection
George Grant -- ggrant@ns.net Friday, May 10, 1996 Environment: VC++ 4.0 Win95 Is there any way to have a CListCtrl keep its current selection = hilighted when the control loses the focus? I've tried using the = control's KillFocus handler to set the selected flag in the "selected" = item's state flags, but that didn't seem to work. Am I going to have to = write a whole custom drawing proc just to handle this one thing? That = would be a serious bummer... -George Grant Air Toxics Ltd.
Glenn T. Jayaputera -- gtj@nunkeen.apana.org.au Monday, May 13, 1996 [Mini-digest: 7 responses] Yep, in your control property turn on "show selection always" glenn tesla -----From: Ray KaminskiFor some reason the LVS_SHOWSELALWAYS does not seem to be an option from within the resource editor in MSDEV. I do not know if this was an oversight or what. You can change the RC file directly or call ModifyStyle in OnInitDialog and change the style. It appears to work fine as I have now used it on several occasions. -----From: "Frederic Steppe" Add the LVS_SHOWSELALWAYS style to you control. Frederic Steppe(frederics@msn.com) -----From: "Andrew Solberg" Try this in InitDialog or whatever, where m_CodeList is my CListCtrl. // set style so that list view will show its selections even when the // control loses focus LONG styleResList = ::GetWindowLong(m_CodeList.m_hWnd, GWL_STYLE); ::SetWindowLong(m_CodeList.m_hWnd, GWL_STYLE, styleResList | LVS_SHOWSELALWAYS); -----From: Mario Contestabile Try using LVS_SHOWSELALWAYS. mcontest@universal.com -----From: "Mike Ward" Try the LVS_SHOWSELALWAYS style. Don't feel bad, I had to ask the same question on compuserve about 3 months ago. I don't know about the rest of you folks, but I find the real battle of programming these days is not getting things to work but finding the information on how things work. -----From: Nancy Enright Use LVS_SHOWSELALWAYS. I call CDisplayPg::SetListCtrlSyle() at the end of OnInitDialog. It sets LVS_SHOWSELALWAYS so that the CListCtrl selection shows even if the control does not have the focus. void CDisplayPg::SetListCtrlSyle() { LONG lStyle; // set the LVS_SHOWSELALWAYS so that the selection shows even if the // control does not have the focus. // color lStyle = GetWindowLong (m_pListColorMono->m_hWnd, GWL_STYLE); lStyle |= LVS_SHOWSELALWAYS; SetWindowLong (m_pListColorMono->m_hWnd, GWL_STYLE, lStyle); } - Nancy Enright nenright@idea.com
| Вернуться в корень Архива |