GSI

사용자 삽입 이미지

컬럼 정보를 크기에 맞도록 채우는 코드 입니다.
넓이 값을 가져 와서 비율 적으로 처리 하는 부분도 있지만.
그 부분을 빼고 직접 넓이를 지정하게 하는 구조를 취하게 했습니다.

코드는 아래와 같습니다.

//컬럼 채우기
int m_nColWidths[] = { 90, 60}; // sixty-fourths
TCHAR * lpszHeaders[] = {
       _T("Port/Sequence"),
       _T("Address"),
       NULL };

int i;
LV_COLUMN lvcolumn;
memset(&lvcolumn, 0, sizeof(lvcolumn));

// add columns
for (i = 0; ; i++)
{
 if (lpszHeaders[i] == NULL)
  break;

 lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
 lvcolumn.fmt = LVCFMT_LEFT;
 lvcolumn.pszText = lpszHeaders[i];
 lvcolumn.iSubItem = i;
 lvcolumn.cx = m_nColWidths[i];
 m_listPortSequencePerAddress.InsertColumn(i, &lvcolumn);
}

lpszHeaders, m_nColWidths 의 정보를 사용해서 for문을 통해서
컬럼 정보를 입력 하는 구조입니다.

하드 코딩 하는거 보다는 이 방법을 취하는게 중간 중간 컬럼명이 바뀔 경우
lpszHeaders의 내용만 수정해 주면 되니까 편한듯 합니다.

Posted by gsi
: