我的问题怎么这么难解决,难道是分少了,我现在给100,不够再给……

aquadp 2004-01-07 10:28:27
1)怎么还是会读出乱码:请给出正确代码。
void CSTRDIALOG::OnButton2()
{
// TODO: Add your control notification handler code here
m_List1.ResetContent();
int nCount = m_Edit2.GetLineCount();
int sLength;
CString strLine, strText;
for(int i=0;i<nCount;i++)
{
strLine = strText = "";
sLength = m_Edit2.LineLength(i);
afxDump << sLength << "\t";
m_Edit2.GetLine(i,strLine.GetBuffer(sLength),sLength);
strLine.ReleaseBuffer(sLength);
strText.Format("%s",strLine);
strText.TrimLeft();
strText.TrimRight();

if (strText!="") m_List1.AddString(strText);
}

}

2)怎样使一个COMBOBOX下拉的函数为10,我怎么在COMBOBOX中填入数据,运行时总是只有2行,什么原因,如何解决?

3)这段代码代表什么意思?
void CEnumWndsDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

4)请列出一段读、写文件的代码

/*请给出正确代码,绝对给分*/
...全文
29 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
changlele 2004-01-07
  • 打赏
  • 举报
回复
一看就知道是菜鸟。
changlele 2004-01-07
  • 打赏
  • 举报
回复
CFile file;
if(! file.Open("AA.txt",CFile::modeReadWrite,NULL) )
{
::MessageBox(NULL,"Error!,file open","Error",NULL);
}
else
{
char str[100] ="lskjdfks;d";
file.Write(str,sizeof(str) );
}
file.Close();
victor_cui 2004-01-07
  • 打赏
  • 举报
回复
可以调整分数的
aquadp 2004-01-07
  • 打赏
  • 举报
回复
给分给错了,以后会开贴给分的。
broadoceans 2004-01-07
  • 打赏
  • 举报
回复
CFile file;
file.Open("c:\\1.txt",CFile::modeRead);
char buffer[1024];
memset(buffer,'\0',1024); //注意清零
DWORD dwread = file.Read(buffer,1024);
while (dwread>0)
{
dwread = file.Read(buffer,1024);

}

file.Close();


出现乱码是正常的,不出现重属巧合
DWORD dwread = file.Read(buffer,1024);
1、你是读1024个字符,如果有汉字的话,1024 byte处可能是半个汉字,即乱码。
2、如果你读入的正好是1024个字符,那么你的buffer将没有以0结尾,后面显然
是乱码。
解决办法:
如果没有汉字,改为:
char buffer[1025];
memset(buffer,'\0',1025); //注意清零
即可。
如果有汉字,改为:
char buffer[2049]; //汉字为双字节。
memset(buffer,'\0',2049); //注意清零
至于读实际的汉字个数,建议你看一看:
http://expert.csdn.net/Expert/TopicView1.asp?id=2627700
aquadp 2004-01-07
  • 打赏
  • 举报
回复
读文件的代码,输出结果有乱码:
CFile file;
file.Open("c:\\1.txt",CFile::modeRead);
char buffer[1024];
memset(buffer,'\0',1024); //注意清零
DWORD dwread = file.Read(buffer,1024);
while (dwread>0)
{
dwread = file.Read(buffer,1024);

}

file.Close();
哪里的错????
userlon 2004-01-07
  • 打赏
  • 举报
回复
在窗口设计界面上先选中COMBOBOX,再点击下拉箭头,放大此时显示的虚线框
zhenbe 2004-01-07
  • 打赏
  • 举报
回复
UpdateData(); 大哥
lanstar200 2004-01-07
  • 打赏
  • 举报
回复
昏倒
dTianx 2004-01-07
  • 打赏
  • 举报
回复
(1) 不想读这段代码,sorry

(2)m_ComboBox.AddString("this line");

(3)void CEnumWndsDlg::OnPaint()
{
if (IsIconic())//如果是最小化状态
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);//擦除标题栏背景

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);//这两行代码算图标志画在什么地方
CRect rect;
GetClientRect(&rect);//得到窗体大小
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
fingerfox 2004-01-07
  • 打赏
  • 举报
回复
这段代码代表什么意思?
表示画对话筐的默认代码。
fingerfox 2004-01-07
  • 打赏
  • 举报
回复
ComboBox筐拉长些就看见了。
fingerfox 2004-01-07
  • 打赏
  • 举报
回复
void CSTRDIALOG::OnButton2()
{
// TODO: Add your control notification handler code here
m_List1.ResetContent();
int nCount = m_Edit2.GetLineCount();
int sLength;
CString strLine, strText;
for(int i=0;i<nCount;i++)
{
strLine = strText = "";
sLength = m_Edit2.LineLength(i);
afxDump << sLength << "\t";
char buffer[512];//需要保证sLength < 512,否则动态分配内存.
m_Edit2.GetLine(i,buffer,sLength);
strText.Format("%s",buffer);
strText.TrimLeft();
strText.TrimRight();

if (strText!="") m_List1.AddString(strText);
}

}
typhoon20 2004-01-07
  • 打赏
  • 举报
回复
怎样使一个COMBOBOX下拉的函数为10,我怎么在COMBOBOX中填入数据,运行时总是只有2行,什么原因,如何解决?
这个可以在一开始资源里可以调整的,当你选中COMBOBOX控件时,点一下下拉的框中的三角形,这时出来的是可以调整下拉长度的矩形,你去试试吧
fingerfox 2004-01-07
  • 打赏
  • 举报
回复
//bug多多
CFile file;
if(! file.Open("AA.txt",CFile::modeReadWrite,NULL) )
{
::MessageBox(NULL,"Error!,file open","Error",NULL);
return;
}
else
{
char str[100];
strcpy(str,"Hello C++");
// file.Write(str,sizeof(str) );
file.Write(str,strlen(str) );

}
file.Close();
aquadp 2004-01-07
  • 打赏
  • 举报
回复
就算是简单的问题也没人回答一下吗???

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧