按钮名动态改变

lklwlklw 2009-10-15 08:51:45
按钮名如何动态改变
void CFullScreenView::OnButton(UINT id)//主画面按钮消息处理
{
// TODO: Add your command handler code here
CString str;
GetDlgItemText(id,str);
if(str=="压射")//点主画面按钮 如果是“压射”就进入另外一个画面
{

//进入另外一个画面IDD_BASEFORM
CMainFrame *pMainFrame = (CMainFrame *)AfxGetMainWnd();
pMainFrame->SwitchToForm(IDD_BASEFORM); //ID


for(int i=0;i<10;i++)
{
SetDlgItemText(id,tt.Level2[i]); //保存按钮名 怎么改变不了
}
}
}
...全文
268 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsc1509 2009-10-16
  • 打赏
  • 举报
回复
看返回值,getlasterror
lonelyhacker 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 shixuewuhen 的回复:]
for(int i=0;i <10;i++)
{
SetDlgItemText(id,tt.Level2[i]); //保存按钮名 怎么改变不了
UpdateData(FALSE);
}
[/Quote]

加UpdateData也没用。循环都有问题
panpengpeng 2009-10-15
  • 打赏
  • 举报
回复
设置按钮类对象,比如m_Button

m_Button.SetWindowText("文字");
Invalidate();

这样就可以了
zpf82118 2009-10-15
  • 打赏
  • 举报
回复
你可以设断点看一下字符串的值啊
另外是不是没更新界面啊
luckzengwei 2009-10-15
  • 打赏
  • 举报
回复
参考孙鑫的教材里面静态文本框的名称动态改变,代码是一样的。偶试过。
wu_qing_yun 2009-10-15
  • 打赏
  • 举报
回复
前面9次设置是成功的,只是最后一次,也就是第10次把以前的覆盖掉了!
lonelyhacker 2009-10-15
  • 打赏
  • 举报
回复
for(int i=0;i <10;i++)
{
SetDlgItemText(id,tt.Level2[i]); //保存按钮名 怎么改变不了
}

你这句有问题哦,我不知道你是不是这样想的, 有button1到button10一共10个。

所以你给了个10次的循环来SetDlgItemText按钮的标题。

你的循环有问题,比如说当你点按钮1的时候,SetDlgItemText(id,tt.Level2[i]),这句

实际上是你SetDlgItemText(id,tt.Level2[10]),,,不管你点的是那一个按钮,你最后显示的

标题都是tt.Level2[10]里面的第10个的字符串。你本身只是把第10个字符串给传进去,前面的

9次都是没有意义的。
tzqqkl 2009-10-15
  • 打赏
  • 举报
回复
updateData一下呢
Supper_Jerry 2009-10-15
  • 打赏
  • 举报
回复
看返回值,getlasterror
jyh_baoding 2009-10-15
  • 打赏
  • 举报
回复
应该可以啊
M_S_D_N 2009-10-15
  • 打赏
  • 举报
回复
为什么要在一个for循环里面设置10次按钮的文本呢?
SHIXUEWUHEN 2009-10-15
  • 打赏
  • 举报
回复
for(int i=0;i <10;i++)
{
SetDlgItemText(id,tt.Level2[i]); //保存按钮名 怎么改变不了
UpdateData(FALSE);
}
你妹的特盗不 2009-10-15
  • 打赏
  • 举报
回复
for(int i=0;i <10;i++)
{
SetDlgItemText(id,tt.Level2[i]); //保存按钮名 怎么改变不了
}
这循环真的够郁闷的哈

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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