我的代码是
void Cmydlg::OnBnClickedButton3()
{
UpdateData();
CFileDialog dlg(FALSE, _T("TXT"),_T("压降文本"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("文本文件 "),this);
if(dlg.DoModal()==IDOK)
{
CString strText(_T(""));
GetDlgItemText(IDC_EDIT1,strText);;CFile file;
file.Open(dlg.GetPathName(),CFile::modeCreate|CFile::modeWrite);
file.Write((void*)(LPCTSTR)strText,strText.GetLength() );
file.Close();
} }
但是我在EDIT1中输入123456保存的只有123,求教这是怎么回事啊
void Cmydlg::OnBnClickedButton3()
{
UpdateData();
CFileDialog dlg(FALSE, _T("TXT"),_T("压降文本"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("文本文件 "),this);
if(dlg.DoModal()==IDOK)
{
CString strText(_T(""));
GetDlgItemText(IDC_EDIT1,strText);;CFile file;
file.Open(dlg.GetPathName(),CFile::modeCreate|CFile::modeWrite);
file.Write((void*)(LPCTSTR)strText,strText.GetLength() );
file.Close();
} }
但是我在EDIT1中输入123456保存的只有123,求教这是怎么回事啊
解决方案 »
- 为一个菜单项添加消息映射函数,报parent class code is read only
- 运行到断点处时,程序却在另一个不同文件夹中的同名文件的相同位置中断
- 如何设置子窗口显示在工具栏下面!
- Visual Assist X 代码着色混乱的问题
- 一个单选按钮的问题?
- 一个VC.NET编译的错误,请帮忙.
- 用消息在进程间通信,如何能够确保消息被处理?请高手指点一下,给个思路也可以。
- 急!急!急!怎样在win98下获得CPU序列号或硬盘序列号
- 请问读取一个大文件(2G)的,是自己开缓冲区一点一点读快,还是一次全读(由系统负责缓冲)快?
- 如何设定非模态对话框的位置?
- vc6.0+sql2000修改记录没有达到预期的效果
- 【图】【这是什么控件?】问一个我们在win7里经常看到的进度条
GetLength返回6,于是写6个字符。但是,“123456”实质是L"123456"。
即char ch[]={ "1 2 3 4 5 6 " };所以只写了123。class Chars
{
public:
Chars(const CString &str)
{
int length=WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,FALSE);
ch=new char[length+1];
WideCharToMultiByte(CP_ACP,0,str,-1,ch,length,NULL,FALSE);
}
char* GetChars()
{ return ch; }
~Chars()
{ delete ch; }
private:
char* ch;
};此类将宽字符转成普通字符,这样就不会有问题了。
CString str;
Chars chs(str);
char* cc = chs.GetChars()
CFile::Write((void*)cc,strlen(cc));