Bonjour,
J'ai une CList qui a ete creee en mode multi selection, et on me passe son handle. Je veux la rendre single selection. Quel message dois-je lui envoyer ?
Version imprimable
Bonjour,
J'ai une CList qui a ete creee en mode multi selection, et on me passe son handle. Je veux la rendre single selection. Quel message dois-je lui envoyer ?
:koi:
tu veux peut-être parler d'une CListBox?
salut,
je dirais comme ça en utilisant
:DCode:
1
2 MyCtrl.ModifyStyle(0,LVS_SINGLESEL );
ModifyStyle fonctionne si c'est moi qui possede la liste, mais cela n'est pas le cas, ce n'est pas mon application. Moi je n'ai qu'un HWND sur celle-ci. Donc il faut que je fasse cela avec un SendMessage.
facile a adapterCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0) { ATLASSERT(::IsWindow(m_hWnd)); DWORD dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE); DWORD dwNewStyle = (dwStyle & ~dwRemove) | dwAdd; if(dwStyle == dwNewStyle) return FALSE; ::SetWindowLong(m_hWnd, GWL_STYLE, dwNewStyle); if(nFlags != 0) { ::SetWindowPos(m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | nFlags); } return TRUE; }
:D
Merci !
du coup moi je fais cela:
Code:
1
2 int style = GetWindowLong(hWndList, GWL_STYLE); SetWindowLong(hWndList, GWL_STYLE, style | LVS_SINGLESEL);