TAMANHO COLUNA LISTVIEW

MILTONSILVA94 14/10/2017 18:33:26
#477149
Boa tarde,

Como posso bloquear o tamanho da coluna no Listview, para que não permita ao usuário aumentar ou diminuir o tamanho?

Com a rotina abaixo acaba retirando a primeira linha do Listview, e não é isso que quero:

lvwLista.HideColumnHeaders = True

Sugestões?
MILTONSILVA94 14/10/2017 23:28:05
#477151
Citação:

:
Cara, acho que você vai ter que fazer isso via API. Veja se isso aqui te ajuda:

www.vbforums.com/showthread.php?743049-RESOLVED-Prevent-User-From-Resizing-Column-Width-in-ListView

www.vbforums.com/showthread.php?743341-VB6-Lock-ListView-Columns



Oi JABA, encontrei esta rotina, porém ele apresenta o erro abaixo na variável [ô]tNMH[ô]:

Private Function WindowProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Dim tNMH As NMHDR
Dim tNMHEADER As NMHEADER
Dim tITEM As HDITEM

Select Case Msg
Case WM_NOTIFY
[ô] COPY THE NOTIFY MESSAGE HEADER TO A HEADER STRUCTURE
CopyMemory tNMH, ByVal lParam, Len(tNMH)
Select Case tNMH.code
Case HDN_DIVIDERDBLCLICKA
[ô]IF THE USER IS TRYING TO DOUBLECLICK A COLUMN HEADER...
[ô]EXTRACT INFORMATION ABOUT THE HEADER BEING SIZED
CopyMemory tNMHEADER, ByVal lParam, Len(tNMHEADER)
[ô]GET THE INFO ABOUT THE HEADER (IE. INDEX#)
[ô]DONT ALLOW COLUMNS 1 OR 2 TO BE DOUBLECLICKED
If (tNMHEADER.iItem < 3) = True Then
WindowProc = 1
Exit Function
ElseIf (tNMHEADER.iItem = 5) = True Then [ô]DURATION
WindowProc = 1
Exit Function
End If
Case HDN_BEGINTRACK
[ô]IF THE USER IS TRYING TO SIZE A COLUMN HEADER...
[ô]EXTRACT INFORMATION ABOUT THE HEADER BEING SIZED
CopyMemory tNMHEADER, ByVal lParam, Len(tNMHEADER)
[ô]GET THE INFO ABOUT THE HEADER (IE. WIDTH)
CopyMemory tITEM, ByVal tNMHEADER.lPtrHDItem, Len(tITEM)
[ô]DONT ALLOW ZERO OR COLUMNS 1 OR 2 TO BE SIZED
If (tNMHEADER.iItem < 3) = True Then [ô]TYPE & STATUS
WindowProc = 1
Exit Function
ElseIf (tNMHEADER.iItem = 5) = True Then [ô]DURATION
[ô]If (tITEM.mask And HDI_WIDTH) = HDI_WIDTH And tITEM.cxy = 27 Then
WindowProc = 1
Exit Function
[ô]End If
End If
End Select
Case WM_DESTROY
[ô]REMOVE SUBCLASSING WHEN LISTVIEW IS DESTROYED (FORM UNLOADED)
WindowProc = CallWindowProc(mlPrevWndProc, hWnd, Msg, wParam, lParam)
Call SetWindowLong(hWnd, GWL_WNDPROC, mlPrevWndProc)
Exit Function
End Select
[ô]CALL DEFAULT WINDOW HANDLER
WindowProc = CallWindowProc(mlPrevWndProc, hWnd, Msg, wParam, lParam)

End Function

Sugestão?
JABA 15/10/2017 02:07:58
#477153
Esse código foi tirado daqui: vbnet.mvps.org/index.html?code/subclass/lvheadernotifications.htm, tem tudo o que você precisa aí.
MILTONSILVA94 15/10/2017 14:21:04
#477157
Citação:

:
Esse código foi tirado daqui: vbnet.mvps.org/index.html?code/subclass/lvheadernotifications.htm, tem tudo o que você precisa aí.



Oi JABA, não rolou, como já havia olhado antes neste link e como é vb.net não consegui adaptar para o vb6.
JABA 15/10/2017 14:32:52
#477158
Citação:

Oi JABA, não rolou, como já havia olhado antes neste link e como é vb.net não consegui adaptar para o vb6.



Está dizendo lá que o código é para vb5 e vb6.
MILTONSILVA94 15/10/2017 19:58:19
#477162
Citação:

:
Oi JABA, não rolou, como já havia olhado antes neste link e como é vb.net não consegui adaptar para o vb6.

Está dizendo lá que o código é para vb5 e vb6.



Oi JABA, coloquei no módulo e no form conforme estava explicando no artigo e tava apresentando erro na declaração das variáveis.
JABA 15/10/2017 20:43:39
#477163
Não lembro como faz para a IDE aceitar [Ô]STATIC[Ô] no vb6, mas você pode substituí-lo por um [Ô]DIM[Ô] que irá funcionar.
MILTONSILVA94 15/10/2017 21:11:38
#477164
Citação:

:
Não lembro como faz para a IDE aceitar [Ô]STATIC[Ô] no vb6, mas você pode substituí-lo por um [Ô]DIM[Ô] que irá funcionar.



Oi JABA, já tinha tentado com o Dim, Public e não deu.
JABA 15/10/2017 21:56:15
#477165
Eu montei aqui e funcionou perfeitamente. Tentei dar um Resize na última coluna e ele não deixou. Pra funcionar, tem que habilitar clicando no botão. Faça o teste aí na sua máquina.

MILTONSILVA94 16/10/2017 12:50:38
#477176
Citação:

:
Eu montei aqui e funcionou perfeitamente. Tentei dar um Resize na última coluna e ele não deixou. Pra funcionar, tem que habilitar clicando no botão. Faça o teste aí na sua máquina.



Ok JABA, vou realizar os testes com base em seu exemplo hoje a noite e retorno com a resposta aqui.
Página 1 de 3 [24 registro(s)]
Tópico encerrado , respostas não são mais permitidas