有关MFC树形控件的思路问题求助
目前我做的就是这个样子,我有个想法,就是点击左边每个子节点的时候,右边都会出现对应的食品图片,但是点击第二个子节点会不会覆盖第一次的图片,我想会的,但是不知道怎么解决?还...
目前我做的就是这个样子,我有个想法,就是点击左边每个子节点的时候,右边都会出现对应的食品图片,但是点击第二个子节点会不会覆盖第一次的图片,我想会的,但是不知道怎么解决?还有,下面那些按钮+编辑框,我自己添加的,我想让他们和图片一起出现,显然是不可能的,必须自绘按钮和编辑框吧,可是我不会这个,应该无法实现。总的来说,就是左边选一个种类,右边对应出现相应的图片和控件,而且每次都要刷新界面,不刷新图片肯定会重叠,对ba。我不知道这样的方法可不可行,所以想你请教,你有什么更好的方法或者建议吗?还有两周时间做这个东西,肯德基订餐系统(可以打印小票的那种),现在急需你的指导,就是以一种比较好的方式实现,或者谈谈你的看法或见解。现在卡住了,不知从何下手,谢谢!
目前为止写的一部分代码,如下:
void CKFCDlg::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
HTREEITEM hSelectItem=m_tree.GetSelectedItem();//获取选中的子节点
DWORD value=m_tree.GetItemData(hSelectItem);//读取子节点的值
switch(value)
{
case 0:
{
break;
}
case 1://如果选择子节点1
{
m_bmp1.DeleteObject();
m_bmp1.LoadBitmap(IDB_BITMAP1);
m_picture1.SetBitmap(HBITMAP(m_bmp1));
m_bmp2.DeleteObject();
m_bmp2.LoadBitmap(IDB_BITMAP2);
m_picture2.SetBitmap(HBITMAP(m_bmp2));
m_bmp3.DeleteObject();
m_bmp3.LoadBitmap(IDB_BITMAP7);
m_picture3.SetBitmap(HBITMAP(m_bmp3));
m_bmp4.DeleteObject();
m_bmp4.LoadBitmap(IDB_BITMAP8);
m_picture4.SetBitmap(HBITMAP(m_bmp4));
break;
}
case 2://如果选择子节点2
{
break;
}
}
*pResult = 0;
} 展开
目前为止写的一部分代码,如下:
void CKFCDlg::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
HTREEITEM hSelectItem=m_tree.GetSelectedItem();//获取选中的子节点
DWORD value=m_tree.GetItemData(hSelectItem);//读取子节点的值
switch(value)
{
case 0:
{
break;
}
case 1://如果选择子节点1
{
m_bmp1.DeleteObject();
m_bmp1.LoadBitmap(IDB_BITMAP1);
m_picture1.SetBitmap(HBITMAP(m_bmp1));
m_bmp2.DeleteObject();
m_bmp2.LoadBitmap(IDB_BITMAP2);
m_picture2.SetBitmap(HBITMAP(m_bmp2));
m_bmp3.DeleteObject();
m_bmp3.LoadBitmap(IDB_BITMAP7);
m_picture3.SetBitmap(HBITMAP(m_bmp3));
m_bmp4.DeleteObject();
m_bmp4.LoadBitmap(IDB_BITMAP8);
m_picture4.SetBitmap(HBITMAP(m_bmp4));
break;
}
case 2://如果选择子节点2
{
break;
}
}
*pResult = 0;
} 展开
1个回答
展开全部
首先说,你这个系统,如果是商用,那么应该有数据库支持,否则数据的更新,订单的记录都有问题,目前没有看到你有使用数据库。
其次,这个界面要做得好看灵活,并不容易。如果时间紧又不熟悉,推荐你一个相对简单的方法如下:
右侧定制好位置,放8组或12组这样的控件,并在下方放一个翻页按钮(如果可能超出一页数量)
选中左侧列表后,先读取或获得右侧需要的显示个数,然后通过这个个数,将不需要的控件ShowWindow(SW_HIDE); 隐藏起来,分组管理,包括图片、编辑框等。
如果界面允许,最好使用编辑框+Spin旋钮控件,这个控件有自动绑定,节省了你按钮处理代码。
每个分组的管理,最好用对话框类的自定义成员函数封装一下,比如ShowNumber(个数),LoadPic(分组ID,个数);等等,简化代码。
更多追问追答
追问
不是商用,我是大二的学生,在学MFC,这是老师布置的期中作业,我目前的水平也做不出那么好的,只是想做好点,就是有想法,不知道怎么实现,目前的状况就是这样。很简单的一个系统,选完餐然后统计总价,在txt文件中打印出小票就可以了,这就是要求,过于难得目前也做不出来,也不追求了。
1.这个翻页按钮是干嘛用的?翻页查看食品?
2.分组的话,是不是每个子节点一个函数,各自用各自的函数
由于限制,只能先写一部分
追答
如果每个分类(树形节点)下面多余当前显示的个数,需要翻页(因为位置固定,无法使用滚动条)
不需要每个节点一个函数,只是函数参数不一样即可实现。LoadPic(分组ID,个数);
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询