SPREAD의 체크박스(Check Box) 선택 여부 읽어 오기 - FarPoint Spread

 SPREAD의 체크박스(Check Box) 선택 여부 읽어 오기 - FarPoint Spread

체크박스의 선택 여부에 따라 1 또는 0 값을 설정하는 방법(GetText() 메소드 사용)

SPREAD에 체크박스를 생성하여 체크박스의 선택 여부에 따라서 1인지 0인지를 설정하는 코드이다. 체크박스의 선택유무를 읽는 것이어서 메소드가 Check로 시작하는 것이 있을 것이라고 생각하고 코드를 찾아 봤지만, 나오질 않아서 확인 결과 GetText()메소드를 이용해야 한다는 것을 알게되었다. GetText()의 VARIANT변수에 'TRUE'인지 'FALSE'인지를 읽어서 체크박스가 선택되었는지를 알 수 있었다.  

SPREAD에서 버튼 클릭 시 체크박스의 값을 읽어오는 코드 작성하기

SPREAD EVENT 속성에서 버튼 클릭을 추가한다. 코드가 없느 빈 메시지 처리기 메소드가 생성된다. 이 메소드에 아래 코드처럼 내용을 추가한다. 내용의 의미는 다음과 같다.

  1. VARIANT 형의 변수를 선언한다.
  2. 변수의 속성을 STRING형으로 설정한다.
  3. string을 저장할 수 있는 변수를 선언한다.
  4. 문자형 변수에 값을 저장할 수 있도록 메모리에 할당한다.
  5. 스프레드의 행과 열을 설정한다.
  6. 행과 열에 위치한 체크박스의 값을 읽어온다.
  7. 읽어온 내용을 변수에 저장한다. 체크 박스에 선택이 되었다면, 값은 '1'이 될 것이고 체크가 안 되었다면 값을 없을 것이다. 

실제 코드에 적용해 보기

void CDispDlg::ButtonClickedFpspread2(long Col, long Row, short ButtonDown)
{
// TODO: 여기에 메시지 처리기 코드를 추가합니다.
VARIANT Var; ///< VARIANT 형 변수를 선언한다.
Var.vt = VT_BSTR; ///< 속정을 STRING형으로 한다.
CString sRecv; ///< 문자열 저장 변수를 선언한다.
Var.bstrVal = sRecv.AllocSysString(); ///< 변수에 값이 저장될 수 있도록 할당한다.
m_spreadSimTelegram.SetCol(Col); ///< 컬럼의 인덱스를 읽는다.
m_spreadSimTelegram.SetRow(Row); ///< ROW이 인덱스를 읽는다.
m_spreadSimTelegram.GetText(Col, Row, &Var); ///< 컬럼과 ROW의 위치의 값을 읽는다.
sRecv = Var; ///< 읽은 값을 STRING 변수에 저장한다.
TRACE(_T("BCOL:%02d, BROW:%02d, %02d\n"), Col, Row, ButtonDown);
}

비행기 위탁수하물에 USB 충전식 LED 조명 거울을 부칠 수 있는지에 대한 상세 분석

비행기 위탁수하물에 USB 충전식 LED 조명 거울을 부칠 수 있는지에 대한 상세 분석 항공기 여행 시 위탁수하물로 전자기기(특히 배터리 내장 제품)를 부칠 때는 각종 규정과 제한 사항을 준수해야 합니다. USB 충전식 LED 조명 거울의 위탁 여부는...