CFileDialog保存时带有默认的文件名

  1. CFileDialog saveFile = CFileDialog(FALSE, ".mecd""", OFN_CREATEPROMPT | OFN_PATHMUSTEXIST , "Multi-Engine Case Designer Script (*.mecd)|*.mecd|All files (*.*)|*.*||");  
  2. if(IDOK == saveFile.DoModal()){  
  3. //  
  4. }  


修改saveFile的成员变量就可以实现带有默认的保存文件名,与此同时必须修改另外一个字符串长度的变量。但很多人经常遇到运行时异常,原因在于输入的字符串长度不正确,访问到不该访问的位置上去了。正确的使用方法:

[cpp]  view plain  copy
  1. CFileDialog saveFile = CFileDialog(FALSE, ".mecd""", OFN_CREATEPROMPT | OFN_PATHMUSTEXIST , "Multi-Engine Case Designer Script (*.mecd)|*.mecd|All files (*.*)|*.*||");  
  2. CString defaultFileName = caseName;  
  3. saveFile.m_ofn.lpstrFile = defaultFileName.GetBuffer(MAX_PATH);  
  4. saveFile.m_ofn.nMaxFile = MAX_PATH;  
  5. if(IDOK == saveFile.DoModal()){  
  6. //  
  7. }  
  8. defaultFileName.ReleaseBuffer();  


注意点:

1. CString的GetBuffer和ReleaseBuffer可能改变CString的内容,所以使用之前先存到另外一个临时变量。

2. 记得调用ReleaseBuffer。

转载出处:https://blog.csdn.net/sulliy/article/details/6880689

猜你喜欢

转载自blog.csdn.net/qq_23992597/article/details/80366421