Change Dir inside CFileDialog
-
I guess that UpdateData has nothing to do with what you are trying to achieve. Could you post your actual code?
void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles"}; SetCurrentDirectory(szPath); } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles"}; SetCurrentDirectory(szPath2); } Invalidate(); UpdateData(false); // Here I want refresh the CFileDialog with the new filter and path }
I Try, but I'm not sure :))
-
void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles"}; SetCurrentDirectory(szPath); } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles"}; SetCurrentDirectory(szPath2); } Invalidate(); UpdateData(false); // Here I want refresh the CFileDialog with the new filter and path }
I Try, but I'm not sure :))
No, this code won't work. SetCurrentDirectory just sets the current directory. It cannot change the folder selection within the CFileDialog. You have to find the possibility to change the folder selection within the CFileDialog control(s)!
-
No, this code won't work. SetCurrentDirectory just sets the current directory. It cannot change the folder selection within the CFileDialog. You have to find the possibility to change the folder selection within the CFileDialog control(s)!
ok, and what are these controls? can you send me an example code? Thank you
I Try, but I'm not sure :))
-
void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles"}; SetCurrentDirectory(szPath); } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles"}; SetCurrentDirectory(szPath2); } Invalidate(); UpdateData(false); // Here I want refresh the CFileDialog with the new filter and path }
I Try, but I'm not sure :))
Try instead to overwrite the m_ofn member lpstrFile to contain the full folder path, either "c:\\DocFiles" or "c:\\TxtFiles".
-
Try instead to overwrite the m_ofn member lpstrFile to contain the full folder path, either "c:\\DocFiles" or "c:\\TxtFiles".
sorry, it doesn't work :(
I Try, but I'm not sure :))
-
sorry, it doesn't work :(
I Try, but I'm not sure :))
Could you post your implementation?
-
Could you post your implementation?
I try: void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles"}; SetCurrentDirectory(szPath); m_ofn.lpstrFile=szPath; } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles"}; SetCurrentDirectory(szPath2); m_ofn.lpstrFile=szPath2; } Invalidate(); UpdateData(false); } and void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles\\file.doc"}; SetCurrentDirectory(szPath); m_ofn.lpstrFile=szPath; } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles\\file.txt"}; SetCurrentDirectory(szPath2); m_ofn.lpstrFile=szPath2; } Invalidate(); UpdateData(false); } but don't work. N.B. the file.txt and file.doc are existing files on the disk.
I Try, but I'm not sure :))
-
Could you post your implementation?
I try 2 solution: void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles"}; SetCurrentDirectory(szPath); m_ofn.lpstrFile=szPath; } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles"}; SetCurrentDirectory(szPath2); m_ofn.lpstrFile=szPath2; } Invalidate(); UpdateData(false); } and void MyClass::OnTypeChange() { if(m_ofn.nFilterIndex==2){ // .doc char szPath [MAX_PATH] = {"c:\\DocFiles\\file.doc"}; //SetCurrentDirectory(szPath); m_ofn.lpstrFile=szPath; } else { // .txt char szPath2 [MAX_PATH] = {"c:\\TxtFiles\\file.txt"}; //SetCurrentDirectory(szPath2); m_ofn.lpstrFile=szPath2; } Invalidate(); UpdateData(false); } But don't work. N.B.: c:\DocFiles\file.doc and c:\TxtFiles\file.txt are existing files on the disk.
I Try, but I'm not sure :))