본문 바로가기

API / MFC/Function Information

CFileDialog 생성자 함수(CFileDialog::CFileDialog)

=> 기본 윈도우 파일 다이얼로그 박스를 생성하는 함수

//afxdlgs.h
class CFileDialog : public CCommonDialog
{
        .................

public:
        .................
// Constructors
	explicit CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
		LPCTSTR lpszDefExt = NULL,
		LPCTSTR lpszFileName = NULL,
		DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
		LPCTSTR lpszFilter = NULL,
		CWnd* pParentWnd = NULL,
		DWORD dwSize = 0);
	virtual ~CFileDialog();	
        ..................
};


BOOL bOpenFileDialog
=>    생성하는 다이얼로그 박스 타입을 지정해 주는 매개변수
       TRUE => 파일열기 다이얼로그 박스 
       FALSE => 파일 저장 다이얼로그 박스

LPCTSTR lpszDefExt
=>    기본 파일 확장자명(저장할 경우 사용)
       만약 유저가 파일이름 상자 안에 확장자를 포함하지 않는 경우
       lpszDefExt의 파일 확장자명을 자동으로 지정 함
       NULL => 확장자명을 추가하지 않음

lpszFileName
=>    시작할 때 파일이름 상자에 나타낼 이름 지정
        NULL => 시작할 때 파일이름을 나타내지 않음


dwFlags
=>    하나이상의 플래그를 사용하여 사용자가 원하는 다이얼로그 박스로 조합

        많이 사용되는 플래그 
        OFN_ALLOWMULTISELECT        한번에 여러개의 파일들을 선택 가능하게 함
        OFN_CREATEPROMPT              존재하지 않는 파일명을 입력했을 경우 새로 생성하겠냐는 대화상자 표시
        OFN_EXPLOPER                       열기나 저장하기를 윈도우 탐색기 스타일로 출력
        OFN_FILEMUSTEXIST               기존에 존재하는 파일 이름만 입력할 수 있도록 함
        OFN_HIDEREADONLY                읽기전용 파일은 출력하지 않음
        OFN_LONGNAMES                   긴 파일 이름을 사용할 수 있도록 함
        OFN_OVERWRITEPROMPT        저장할려고 하는 파일명이 존재할 경우 덮어쓰겠냐는 대화 상자 표시
        OFN_PATHMUSTEXIST             오직 유효한 경로나 파일명만을 입력(아님 경고 메세지 출력)

        추가 플래그 참조 :
http://msdn.microsoft.com/ko-kr/library/ms646839(en-us,VS.85).aspx


lpszFilter
=> 사용할 파일들이 걸러지도록 파일명들을 연속으로 나열 함

pParentWnd
=>부모나 소유자 윈도우의 파일 다이얼로그 박스의 포인터

dwSize
=>OPENFILENAME 구조체의 크기


참조 :
http://msdn.microsoft.com/ko-kr/library/wh5hz49d.aspx

'API / MFC > Function Information' 카테고리의 다른 글

PostMessage & SendMessage  (0) 2010.03.29
CFileFind Class  (0) 2010.03.23
CWnd::UpdateData()  (0) 2010.03.09
윈도우 ID 값 추출(GetDlgCtrlID())  (0) 2010.03.08
CDC::BitBlt  (0) 2010.03.08