亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

UpdateWindow(); //這個地方我寫UpdateData(true);也不行,為什么?

UpdateWindow(); //這個地方我寫UpdateData(true);也不行,為什么?

C++
尚方寶劍之說 2023-04-21 17:17:52
我在一個窗口上添加了一個編輯框,單擊按鈕在編輯框中顯示text中內容,只能顯示一次,第二次點擊按鈕就顯示不了了。void two::OnOK() {// TODO: Add extra validation hereUpdateData(true);CString tt;char name[100];freopen("test1.txt","r",stdin); cin>>name;tt.Format(name);while(cin>>name){tt+="\r\n";tt+=name;}SetDlgItemText(IDC_EDIT1,tt);fclose(stdin);UpdateWindow(); //這個地方我寫UpdateData(true);也不行}
查看完整描述

2 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

將兩處的cin>>name; 改為 gets(name)就可以了

具體為什么不太清楚,可能是這個cin在第二次被破壞了吧

調了一晚上了,您這個問題厲害啊

代碼如下:
void CCTest6DlgDlg::OnOK() 
{
CString tt;
tt = "";
char name[100];
memset(name,0,100);
FILE *fp;
fp = freopen("ReadMe.txt","r",stdin); 
if (!fp)
{
return ;
}
gets(name);
tt.Format(name);
while(gets(name))
{
tt+="\r\n";
tt+=name;
}
fclose(fp);
fclose(stdin);
freopen("CON","r",stdin); 
SetDlgItemText(IDC_EDIT1,tt);
return;
}


查看完整回答
反對 回復 2023-04-26
?
森欄

TA貢獻1810條經驗 獲得超5個贊

第一,cin>>name;和tt.Format(name);這兩句貌似木有用,可以刪掉;
第二,如上人所說的,在編輯框的屬性里改成Multiline 改為True ,如果你的編輯框畫的時候只有一行,你可以把它拖大一點,看看是不是內容顯示在回車換行下面;
第三,其實UpdateWindow()函數這里不需要,UpdateWindow()函數為真,是寫到變量里去,為假才是顯示到窗口中,默認為真;
第四,實在不行你試著把
SetDlgItemText(IDC_EDIT1,tt);
改為
GetDlgItem(IDC_EDIT1)->SetWindowText(tt);

查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 245 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號