有关MFC树形控件的思路问题求助
答案:1 悬赏:0 手机版
解决时间 2021-04-06 19:16
- 提问者网友:萌卜娃娃
- 2021-04-06 15:27
有关MFC树形控件的思路问题求助
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-04-06 15:42
首先说,你这个系统,如果是商用,那么应该有数据库支持,否则数据的更新,订单的记录都有问题,目前没有看到你有使用数据库。
其次,这个界面要做得好看灵活,并不容易。如果时间紧又不熟悉,推荐你一个相对简单的方法如下:
右侧定制好位置,放8组或12组这样的控件,并在下方放一个翻页按钮(如果可能超出一页数量)
选中左侧列表后,先读取或获得右侧需要的显示个数,然后通过这个个数,将不需要的控件ShowWindow(SW_HIDE); 隐藏起来,分组管理,包括图片、编辑框等。
如果界面允许,最好使用编辑框+Spin旋钮控件,这个控件有自动绑定,节省了你按钮处理代码。
每个分组的管理,最好用对话框类的自定义成员函数封装一下,比如ShowNumber(个数),LoadPic(分组ID,个数);等等,简化代码。
追问不是商用,我是大二的学生,在学MFC,这是老师布置的期中作业,我目前的水平也做不出那么好的,只是想做好点,就是有想法,不知道怎么实现,目前的状况就是这样。很简单的一个系统,选完餐然后统计总价,在txt文件中打印出小票就可以了,这就是要求,过于难得目前也做不出来,也不追求了。
1.这个翻页按钮是干嘛用的?翻页查看食品?
2.分组的话,是不是每个子节点一个函数,各自用各自的函数
由于限制,只能先写一部分追答如果每个分类(树形节点)下面多余当前显示的个数,需要翻页(因为位置固定,无法使用滚动条)
不需要每个节点一个函数,只是函数参数不一样即可实现。LoadPic(分组ID,个数);
追问我只有一个父节点,其他全是子节点。假如说我现在‘多人餐’ 本来有10张图片,点击第一个子节点,只出现八张图片和其他控件,然后点击下一页按钮,用ShowWindow显示剩余的两张(但是下一页的编辑框绑定旋转按钮控件显示的还是之前图片1和2用过的对吧?)但是只用这8-10组控件,在统计每个食品个数时,不会出错吗?假如多人餐选了两个,再选其他子节点中的食物,这些控件都是原位置固定的,总计价格不影响吗?追答这样做,虽然界面上会简单不少,但确实会出现你说的问题。
解决办法:在每个影响界面变化的地方(点击节点、翻页),或者在ShowNumber函数中(这个函数也同样必须在每个影响界面变化的地方调用),这样做:
记录下每个当前对应的不为0的数据并保存(或者索性建立一个大的商品数组),在这里直接记录当前页面的所有数据再翻页。这样的流程逻辑就是:
保存当前显示(根据记录的节点和翻页号)——获取当前节点和翻页号——根据当前页数据显示/隐藏控件——根据当前节点和翻页号读取数据——显示当前节点和翻页号图片——更新当前节点和翻页号数据。追问spin控件向下箭头是增大,向上箭头是减小,如何改变?
我希望弄成向上箭头是增大,向下箭头是减小,怎么办?
像你说的这样做,不知道时间够不够,能不能赶得上、
ShowNumber(个数),LoadPic(分组ID,个数);没想好里面怎么写?
写简单的话就是每页最多8个,也不要下一页按钮,那这样统计价格也会出现那样的问题吧、追答第一个:
CSpinButtonCtrl* sp = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1);
sp->SetRange(0,12);对话框增加如上代码即可。
第二个,只能慢慢写吧,建议你,将页面增大,一定不要翻页,这样复杂度会降低一些。用一个全二维数组保存全部商品的图片ID、购买数量、单价、从属分类,也可以省事儿一些,当然,使用结构体数组也是可以的。
追问LoadPic(分组ID,个数);假如第一个分组,这个函数会不会直接就把图片直接显示出来,还没到在子节点调用时,LoadPic(cstring id,int num)里面参数怎么写,这个ID 什么类型
(突然有个想法:在对话框添加菜单,会不会解决这个问题?)追答ID就是属性节点获取的序号或Data,应该是int。追问还是感觉难以实现,统计一个子节点页面的值,也就是结算总金额,能算出来但不会保存,不知道该怎么做了,等到第二个子节点怎么刷新重置
UpdateData(TRUE);
CString str;
SetDlgItemText(IDC_EDIT9,str);
str.Format("%.2f",m_edit9);追答你这个代码,和保存有什么关系?
保存数据,你至少要定义一个数组,或者指针链表之类的东西吧。
仅仅计算总额肯定是不行的,因为如果你从节点2统计后进入节点3,再重新点击节点2,你怎么办?因此你必须将所有商品数量统一记录和管理,没有别的办法。来自:求助得到的回答
其次,这个界面要做得好看灵活,并不容易。如果时间紧又不熟悉,推荐你一个相对简单的方法如下:
右侧定制好位置,放8组或12组这样的控件,并在下方放一个翻页按钮(如果可能超出一页数量)
选中左侧列表后,先读取或获得右侧需要的显示个数,然后通过这个个数,将不需要的控件ShowWindow(SW_HIDE); 隐藏起来,分组管理,包括图片、编辑框等。
如果界面允许,最好使用编辑框+Spin旋钮控件,这个控件有自动绑定,节省了你按钮处理代码。
每个分组的管理,最好用对话框类的自定义成员函数封装一下,比如ShowNumber(个数),LoadPic(分组ID,个数);等等,简化代码。
追问不是商用,我是大二的学生,在学MFC,这是老师布置的期中作业,我目前的水平也做不出那么好的,只是想做好点,就是有想法,不知道怎么实现,目前的状况就是这样。很简单的一个系统,选完餐然后统计总价,在txt文件中打印出小票就可以了,这就是要求,过于难得目前也做不出来,也不追求了。
1.这个翻页按钮是干嘛用的?翻页查看食品?
2.分组的话,是不是每个子节点一个函数,各自用各自的函数
由于限制,只能先写一部分追答如果每个分类(树形节点)下面多余当前显示的个数,需要翻页(因为位置固定,无法使用滚动条)
不需要每个节点一个函数,只是函数参数不一样即可实现。LoadPic(分组ID,个数);
追问我只有一个父节点,其他全是子节点。假如说我现在‘多人餐’ 本来有10张图片,点击第一个子节点,只出现八张图片和其他控件,然后点击下一页按钮,用ShowWindow显示剩余的两张(但是下一页的编辑框绑定旋转按钮控件显示的还是之前图片1和2用过的对吧?)但是只用这8-10组控件,在统计每个食品个数时,不会出错吗?假如多人餐选了两个,再选其他子节点中的食物,这些控件都是原位置固定的,总计价格不影响吗?追答这样做,虽然界面上会简单不少,但确实会出现你说的问题。
解决办法:在每个影响界面变化的地方(点击节点、翻页),或者在ShowNumber函数中(这个函数也同样必须在每个影响界面变化的地方调用),这样做:
记录下每个当前对应的不为0的数据并保存(或者索性建立一个大的商品数组),在这里直接记录当前页面的所有数据再翻页。这样的流程逻辑就是:
保存当前显示(根据记录的节点和翻页号)——获取当前节点和翻页号——根据当前页数据显示/隐藏控件——根据当前节点和翻页号读取数据——显示当前节点和翻页号图片——更新当前节点和翻页号数据。追问spin控件向下箭头是增大,向上箭头是减小,如何改变?
我希望弄成向上箭头是增大,向下箭头是减小,怎么办?
像你说的这样做,不知道时间够不够,能不能赶得上、
ShowNumber(个数),LoadPic(分组ID,个数);没想好里面怎么写?
写简单的话就是每页最多8个,也不要下一页按钮,那这样统计价格也会出现那样的问题吧、追答第一个:
CSpinButtonCtrl* sp = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1);
sp->SetRange(0,12);对话框增加如上代码即可。
第二个,只能慢慢写吧,建议你,将页面增大,一定不要翻页,这样复杂度会降低一些。用一个全二维数组保存全部商品的图片ID、购买数量、单价、从属分类,也可以省事儿一些,当然,使用结构体数组也是可以的。
追问LoadPic(分组ID,个数);假如第一个分组,这个函数会不会直接就把图片直接显示出来,还没到在子节点调用时,LoadPic(cstring id,int num)里面参数怎么写,这个ID 什么类型
(突然有个想法:在对话框添加菜单,会不会解决这个问题?)追答ID就是属性节点获取的序号或Data,应该是int。追问还是感觉难以实现,统计一个子节点页面的值,也就是结算总金额,能算出来但不会保存,不知道该怎么做了,等到第二个子节点怎么刷新重置
UpdateData(TRUE);
CString str;
SetDlgItemText(IDC_EDIT9,str);
str.Format("%.2f",m_edit9);追答你这个代码,和保存有什么关系?
保存数据,你至少要定义一个数组,或者指针链表之类的东西吧。
仅仅计算总额肯定是不行的,因为如果你从节点2统计后进入节点3,再重新点击节点2,你怎么办?因此你必须将所有商品数量统一记录和管理,没有别的办法。来自:求助得到的回答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯