Programming/MFC

MFC 자주 사용하는 함수

사천y 2011. 1. 29. 20:10

출처 : http://blog.naver.com/psj5500

1. 에디터 박스 컨트롤에 갑 입출력

CString str;
GetDlgItem(IDC_EDIT1)->GetWindowText(str);  //edit1값 -> str으로
GetDlgItem(IDC_EDIT3)->SetwindowText(str);  // str값 -> edit3으로


2. Static_Text의 캡션을 변경방법

- 클래스 위저드 사용 static_text컨트롤와 CString변수 연결
- CString my_string일 경우
  my_string.Format("MAX");
  UpdateData(FALSE);

3. 탭 컨트롤
http://blog.naver.com/hajuny666?Redirect=Log&logNo=60037359888

4. 파일 열기
CFileDialog FileDlg(true,
     "Data",
     NULL,
     OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
     "Data Files(*.dat) | *.dat| All Files(*.*)|*.*||",
     NULL);
if(FileDlg.DoModal() == IDOK)
{
  CString filePath = FileDlg.GetPathName();
  CString fileName = FileDlg.GetFileName();
}
<http://blog.naver.com/eduraker?Redirect=Log&logNo=110028024354 블로그에서 발췌>

5. char 와 CString간의 문자 복사
char dest[12];
CString src("Hello MFC");

// src -> dest로 복사
wcstomb(dest, src, src.GetLength);    // 유니코드
strncpy(dest, src, src.GetLength); // 멀티 바이트

6. mfc의 파일 경로를 못 찾을때..
상대경로로 파일 검색할때, 못 찾는 경우(파일의 위치는 바로됐음에도 불구하고..)
어딘가에서 절대 경로 지정되면, 이후는 절대경로로 찾는다고 함.
CFileDialog파일 생성시 OFN_NOCHANGEDIR옵션을 줘서 해결했음.

GetModuleFileName API로 절대 경로로 만들어 주는 방법도 있다.
TCHAR path[MAX_PATH]
GetModuleFileName(NULL, path, sizeof path);

CString strPath = path;
int i = strPath.ReverseFine('\\');  // 실행 파일 이름을 지우기 위해서 왼쪽에 있는 '/'를 찾는다.
strPath = strPath.Left(i)  // 뒤에 있는 현재 실행 파일 이름을 지운다
AfxMessageBox(strPath);
<http://genesis1719.tistory.com/63 블로그에서 발췌>


<참조및 발췌>
- http://starfactory.tistory.com/84
- 데브피아 왕초보MFC마을
- http://blog.naver.com/hajuny666?Redirect=Log&logNo=60037359888
- http://blog.naver.com/eduraker?Redirect=Log&logNo=110028024354
- http://mycpp.blog.me/120111158063
- http://genesis1719.tistory.com/63