2010-02-10 4 views
0

이것은 내 첫 번째 MFC 응용 프로그램이며, 불행히도 어떻게 작동하는지 이해할 수 없습니다. 주어진 경로의 파일 목록을 가져 오는 간단한 MFC 응용 프로그램을 발견했습니다. 내 필요에 맞게이 코드를 수정했지만 지금은 한 가지 문제가 있습니다. 내 응용 프로그램이해야 할 일은 다음과 같습니다. 파일에서 두 개의 드라이브 문자를 읽습니다. 그런 다음 두 드라이브의 파일 목록을 가져 와서 비교합니다. 기본 드라이브에 보조 드라이브에없는 파일이 있으면 자동으로 복사합니다. 나는이 모든 일을했지만, 이제는 사용자 상호 작용없이 응용 프로그램을 실행하고 싶습니다. 단지 데이터 만 표시해야합니다. 불행히도 원래 MFC 응용 프로그램은 버튼을 눌렀을 때 시작되었습니다. 나는 버튼을 누르지 말고 자동으로 새 파일을 복사합니다. 그래서 내 문제는 다음과 같습니다. 내 기능을 어디에서 호출해야합니까? 버튼을 누를 필요가 없습니다. 여기에 전화해야한다고 생각합니다 :MFC 응용 프로그램에서 단추를 사용하지 않으려면 어떻게해야합니까?

BEGIN_MESSAGE_MAP(CGetFileListDlg, CDialog) 
ON_WM_PAINT() 
ON_WM_QUERYDRAGICON() 
//}}AFX_MSG_MAP 
ON_BN_CLICKED(IDC_BUTTON_GET_FILE_LIST, &CGetFileListDlg::OnBnClickedButtonGetFileList) //this is the original 
//call my function here 
END_MESSAGE_MAP() 

하지만 어떤 이벤트를 사용해야할지 모르겠다. 나는 CGetFileListDlg :: OnBnClickedButtonGetFileList() 함수에서 필요한 모든 것을 변경했다. 그래서 이것을 호출하려고한다. 이것이 중요한지 아닌지는 모르지만 복사하는 동안 현재 어떤 파일을 복사하고 있는지 보여주고 싶습니다.

제발 도와주세요!

미리 감사드립니다. 오버라이드 (override) 패널

kampi

답변

1

당신은 (단지 return TRUE; 전) OnInitDialog() 기능 내에서 버튼의 버튼 클릭을 시뮬레이션 할 수 있습니다 :

PostMessage(WM_COMMAND, MAKEWPARAM(IDC_BUTTON_GET_FILE_LIST, BN_CLICKED), 0); 

참고 : 당신은 상쾌 창을하기 위해 단추 처리기에 UpdateWindow()를 호출 할 필요가 있습니다.

+0

안녕하세요! 아마 어리석은 질문이지만 OnCreate() 함수를 어디에서 호출해야합니까? 이것은 내 첫 번째 MFC 응용 프로그램입니다, 그래서 당신이 말한 많은 내용을 이해하지 못합니다. (내 코드를 게시 할 수 있습니다, 그래서 그것을 이해할 수 있습니까? – kampi

+0

관련된 코드 – djeidot

+0

안녕하세요! 당신의 방법은 거의 잘 작동하지만, 지금, 나는 아주 많은 줄을 주석 처리했다.이 함수는 윈도우가 생성되기 전에 호출되어서 라인을 출력 할 수 없다. 하지만 내가 인쇄 할 수 있다면 아무 것도 안 볼거야. 창문이 만들어지면 복사가 끝났어. 맞지? 그냥 추측하고있어. 내 기능을 부르는 방법을 아십니까? 창을 만든 후? 다시 고마워! – kampi

1

봐 당신이 당신의 대화에 대한 코드 파일에 있습니다. OnInitDialog에 대한 항목을 추가하십시오. 대화 상자가 초기화되면 실제로 파일 처리 코드를 실행하려면 파일 처리 코드를 모두 넣으십시오.

+0

안녕하세요! OnInitDialog에 코드를 붙여 넣으면 거의 잘 작동하지만 복사가 끝나지 않으면 창은 나타나지 않습니다. 복사가 완료되면 내 창만 나타납니다. 복사 및 호출을 위해 다른 기능을 만들어야합니까? – kampi

1

모든 파일 처리를 자체 메서드로 이동해야합니다. 그런 다음 필요에 따라 해당 메서드를 호출 할 수 있습니다.

버튼을 눌렀을 때 메서드를 호출하면 코드를 테스트 한 다음 새 메서드가 제대로 작동하면 코드를 테스트하여 OnInitDialog 또는 다른 곳에서 호출 할 수 있다는 이점이 있습니다 적당한.

+0

그는 파일 처리를위한 코드가 별도의 기능을 수행한다고 명시했습니다. ** 편집 ** ack, 그는 사실 나중에 함수 이름을 언급했다, 나는 그것을 보았다. 버튼 핸들러입니다. 와우! – Dave

관련 문제