c ++窗体中怎么用union,借助于button来实现不同的文本框显示不同类型的数据,急啊!求大神帮忙,我是在VS2015上做的,刚学C++,老师留的作业,希

qq_22863087 2016-10-08 11:45:24
c ++窗体中怎么用union,借助于button来实现不同的文本框显示不同类型的数据,急啊!求大神帮忙,我是在VS2015上做的,刚学C++,老师留的作业,希望大神帮忙,本人菜鸟
...全文
444 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_22863087 2016-10-10
  • 打赏
  • 举报
回复
引用 14 楼 schlafenhamster的回复:
typedef union { float f; int i; char c[4]; }MY_DATA; 意思就是 f ;i ; c 使用 同一个 4字节 (不是 3*4 =12字节)的 内存 块, f ;i ; c 用来区分 不同的 数据类型。
我有点不明白那个afxdump是什么意思,大哥要不你帮我做一下吧,这是我qq1114211008,谢谢了
Sandrer 2016-10-10
  • 打赏
  • 举报
回复
参考 _variant_t 类
schlafenhamster 2016-10-10
  • 打赏
  • 举报
回复
typedef union { float f; int i; char c[4]; }MY_DATA; 意思就是 f ;i ; c 使用 同一个 4字节 (不是 3*4 =12字节)的 内存 块, f ;i ; c 用来区分 不同的 数据类型。
qq_22863087 2016-10-10
  • 打赏
  • 举报
回复
引用 18 楼 schlafenhamster的回复:
“不同的文本框显示不同类型的数据” case 0: sprintf(Prompt,"float=%f", anydata.f ); m_EditFSetWindowText(Prompt) break; case 1: sprintf(Prompt,"int=%d", anydata.i ); m_EditISetWindowText(Prompt) break; ......
好滴,哥们儿,我再看看,不行我都快疯了
qq_22863087 2016-10-10
  • 打赏
  • 举报
回复
引用 17 楼 schlafenhamster的回复:
用来显示的,可以用 MessageBox: char Prompt [260]; sprintf(Prompt,"float=%f", anydata.f ); MessageBox(Prompt);
好滴,谢谢了哥们儿,以后不懂了在来请教
schlafenhamster 2016-10-10
  • 打赏
  • 举报
回复
“不同的文本框显示不同类型的数据” case 0: sprintf(Prompt,"float=%f", anydata.f ); m_EditFSetWindowText(Prompt) break; case 1: sprintf(Prompt,"int=%d", anydata.i ); m_EditISetWindowText(Prompt) break; ......
schlafenhamster 2016-10-10
  • 打赏
  • 举报
回复
用来显示的,可以用 MessageBox: char Prompt [260]; sprintf(Prompt,"float=%f", anydata.f ); MessageBox(Prompt);
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
引用 10 楼 schlafenhamster的回复:
把 void CxxxxDlg::OnButton1() 改成 void Function(), 用 什么 都可以
好像还是不懂,看来真的要哭了
boylafong 2016-10-09
  • 打赏
  • 举报
回复
是我理解能力有问题还是楼主描述有问题 我怎么不明白?
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
引用 10 楼 schlafenhamster的回复:
把 void CxxxxDlg::OnButton1() 改成 void Function(), 用 什么 都可以
好滴,谢谢,我试试,不懂了再来问,我快急疯了
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
好滴,谢谢,我试试,不懂了再来问,我快急疯了
ztenv 2016-10-09
  • 打赏
  • 举报
回复
你的问题是什么呢?
schlafenhamster 2016-10-09
  • 打赏
  • 举报
回复
把 void CxxxxDlg::OnButton1() 改成 void Function(), 用 什么 都可以
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
引用 6 楼 schlafenhamster的回复:
typedef union { float f; int i; char c[4]; }MY_DATA; MY_DATA anydata; void CxxxxDlg::OnButton1() { static int type=0; anydata.f = 1.0f; switch (type) { case 0: afxDump << "float=" << anydata.f << "\n"; break; case 1: afxDump << "int=" << anydata.i << "\n"; break; case 2: afxDump << "char[]="; afxDump << anydata.c[0] << ";"; afxDump << anydata.c[1] << ";"; afxDump << anydata.c[2] << ";"; afxDump << anydata.c[3] << "\n"; break; } type++; type %=3; //float=1. //int=1065353216 //char[]=0;0;-128;63 }
这个是用MFC还是CLR写?
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
引用 7 楼 OnTheWay_Boy的回复:
最简单的,union包含几个数据type,窗体拖几个按钮,每个按钮的响应函数显示union中的一个type 是这个意思吗?
就是这个意思,但是就是代码不会写
OnTheWay_Boy 2016-10-09
  • 打赏
  • 举报
回复
最简单的,union包含几个数据type,窗体拖几个按钮,每个按钮的响应函数显示union中的一个type 是这个意思吗?
schlafenhamster 2016-10-09
  • 打赏
  • 举报
回复
typedef union { float f; int i; char c[4]; }MY_DATA; MY_DATA anydata; void CxxxxDlg::OnButton1() { static int type=0; anydata.f = 1.0f; switch (type) { case 0: afxDump << "float=" << anydata.f << "\n"; break; case 1: afxDump << "int=" << anydata.i << "\n"; break; case 2: afxDump << "char[]="; afxDump << anydata.c[0] << ";"; afxDump << anydata.c[1] << ";"; afxDump << anydata.c[2] << ";"; afxDump << anydata.c[3] << "\n"; break; } type++; type %=3; //float=1. //int=1065353216 //char[]=0;0;-128;63 }
xiaohuh421 2016-10-09
  • 打赏
  • 举报
回复
跟非窗体是一样的用法得嘛. 只是说都需要你自己把指定数据类型格式化成字符串, 再设置到编辑框中, 这是唯一跟控制台的区别 比如你的联合体中是 int float char数组的联合. 第一个编辑框显示int 第二显示float 第三个显示char (格式化使用CString的Format函数 那么你显示第一个的时候, 就把int类型数据格式化成字符串, 再使用SetDlgItemText设置到编辑框中. 第二同理, 把float格式化成字符串, 设置到编辑框中. 第三个, 把char数组格式化成字符串, 设置到第三个编辑框中
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
引用 2 楼 boylafong的回复:
是我理解能力有问题还是楼主描述有问题 我怎么不明白?
就是用C+ +来编写一个窗体,在窗体内有三个可编辑文本框,还有两三了按钮,在其中一个文本框中输入数据,点一个按钮,在另一个文本框中输出显示一个跟输入的数值类型不同的数值,再按一个按钮,第三个文本框同样输出显示一个数据类型不同的数值,在这其中必须要用到共用体union,我是在VS2015上写的,但是一直搞不出来,希望大神帮忙,本人是小白,刚学,谢谢!
qq_22863087 2016-10-09
  • 打赏
  • 举报
回复
引用 1 楼 悟er的回复:
你的问题是什么呢?
就是用C+ +来编写一个窗体,在窗体内有三个可编辑文本框,还有两三了按钮,在其中一个文本框中输入数据,点一个按钮,在另一个文本框中输出显示一个跟输入的数值类型不同的数值,再按一个按钮,第三个文本框同样输出显示一个数据类型不同的数值,在这其中必须要用到共用体union,我是在VS2015上写的,但是一直搞不出来,希望大神帮忙,本人是小白,刚学,谢谢!

16,472

社区成员

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

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

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