|
첫번째 컬럼은 (이제부터는 메인 컬럼이라고 지칭하겠습니다) 정렬이 되지 않습니다.
이것은 ListView의 문제는 아니고, MS에서 ListView 디자인을 잘못한 영향입니다.
그런데, 메인 컬럼을 변경하는 방법이 있습니다. 메인 컬럼을 정렬이 필요없는
컬럼으로 대체하는 방법입니다.
LVM_SETCOLUMNORDERARRAY 메시지를 이용하시면 되고,
Wparam에는 전체 Int 배열 갯수, LParam에는 Int 배열을 넘겨주시면 됩니다.
아래 예제는 5개의 컬럼중 가운데 컬럼 (3번째. 즉 Index 2번 컬럼) 을 메인 컬럼으로
변경하는 예제입니다.
테스트 시에는 ListView에 컬럼 5개를 추가하시고 실행하시기 바랍니다.
cuperido
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int itCount;
int itArray[5] = {2, 0, 1, 3, 4};
if(ListView1->Columns->Count < 5) {
ShowMessage("테스트용 컬럼 5개가 필요합니다");
return;
}
SendMessage(ListView1->Handle, LVM_SETCOLUMNORDERARRAY, 5, (LPARAM)&itArray);
for(itCount = 0; itCount < ListView1->Columns->Count; itCount ++)
ListView1->Columns->Items[itCount]->Alignment = taCenter;
}
//---------------------------------------------------------------------------
앙마 님이 쓰신 글 :
: 첫번째 Column은 alignment 안되는지 궁금합니다......
:
: 나머지 칼럼은 전부 Center정렬이 되는데 ..첫번째 칼럼은 안먹네요..Center정렬이 프로퍼티에 있는걸 보면 어떻게 하는 방법이 있을꺼 같긴한데..첫번째 칼럼..가운데 정렬하는법좀 알려주세요...
:
:
|