ins_dlg.lStructSize = sizeof( OPENFILENAME ) + 12;
ex) 코드 : 다중파일 선택
char name_filter[] = "모든 파일(*.*)|*.*||";
CFileDialog ins_dlg(TRUE, NULL, NULL, OFN_EXPLORER | OFN_NOVALIDATE | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, name_filter, this);
ins_dlg.m_ofn.nFilterIndex = 2;
ins_dlg.m_ofn.nMaxFile = MAX_PATH;
char *p_file_name_buffer = new char[MAX_PATH];
strcpy(p_file_name_buffer, "");
ins_dlg.m_ofn.lpstrFile = p_file_name_buffer;
ins_dlg.m_ofn.lStructSize = sizeof( OPENFILENAME ) + 12; // 이부분 추가
if( ins_dlg.DoModal() == IDOK )
{
POSITION pos = ins_dlg.GetStartPosition();
while( pos != NULL )
{
SHFILEINFO sfi;
SHGetFileInfo( ins_dlg.GetFileName(), 0, &sfi, sizeof(SHFILEINFO), SHGFI_DISPLAYNAME | SHGFI_TYPENAME| SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
m_ctrList.InsertItem( 0, ins_dlg.GetFileTitle(), sfi.iIcon );
m_ctrList.SetItemText( 0, 1, ins_dlg.GetNextPathName(pos) );
}
}
delete[] p_file_name_buffer;
'C & C++ > C & C++' 카테고리의 다른 글
바탕화면 폴더 경로 가져오기 (0) | 2012.06.20 |
---|---|
가상키 코드 리스트 (0) | 2012.06.12 |
CPU 사용률 알아오기 (0) | 2012.06.12 |
OS 버전 알아오기 (0) | 2012.06.12 |
SHGetSpecialFolderPath() - 윈도우 특별한 폴더 경로 (0) | 2012.06.12 |
댓글