首页上一页 1 下一页尾页 9 条记录 1/1页
vc c++项目开发全程实录 第6章 超市进销存管理系统中图标的消息响应怎么添加??
发表在C语言图书答疑
2010-07-10
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
第6章 超市进销存管理系统中有impt的小图标icon,小图标经过设置在空白的对话框上,设置成button状态的图标的消息响应怎么添加??----------其中菜单的消息响应会添加。但是button状态的图标的消息响应添加不上。我在添加消息映射afx ;begin--end ;函数的实现3处都添加完毕-----------手动添加的。但是运行时对话框的鼠标的点击button状态的图标的消息传递不出去;不知道作者的button状态的图标的消息响应是怎么添加的。
希望专家给与解答::谢谢
希望专家给与解答::谢谢
精彩评论 9
2010-07-12
板凳
//创建图像列表
m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
//向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSHANGP));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSELLQ));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDEPOT));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONNDEPOT));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDAY));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONUSER));
UINT array[8];
for(int i=0;i<8;i++)
{
if(i==2 || i==5)
array[i] = ID_SEPARATOR; //第3、6个按钮为分隔条
else
array[i] = i+1001;
}
m_ToolBar.Create(this);
m_ToolBar.SetButtons(array,8);
//关联图像列表
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_ToolBar.SetSizes(CSize(50,60),CSize(32,32)); //设置按钮和图标的大小
//设置工具栏按钮的显示文本
m_ToolBar.SetButtonText(0,"商品信息");
m_ToolBar.SetButtonText(1,"销售查询");
m_ToolBar.SetButtonText(3,"入库登记");
m_ToolBar.SetButtonText(4,"库存信息");
m_ToolBar.SetButtonText(6,"日结查询");
m_ToolBar.SetButtonText(7,"用户管理");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
这端代码显示在空白的supermaket的主窗体上不是6个button状态的图标吗?他们来之导入的6个小图片。我问的是6个button状态的图标的消息映射是怎么添加上去的啊?
谢谢
m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
//向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSHANGP));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSELLQ));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDEPOT));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONNDEPOT));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDAY));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONUSER));
UINT array[8];
for(int i=0;i<8;i++)
{
if(i==2 || i==5)
array[i] = ID_SEPARATOR; //第3、6个按钮为分隔条
else
array[i] = i+1001;
}
m_ToolBar.Create(this);
m_ToolBar.SetButtons(array,8);
//关联图像列表
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_ToolBar.SetSizes(CSize(50,60),CSize(32,32)); //设置按钮和图标的大小
//设置工具栏按钮的显示文本
m_ToolBar.SetButtonText(0,"商品信息");
m_ToolBar.SetButtonText(1,"销售查询");
m_ToolBar.SetButtonText(3,"入库登记");
m_ToolBar.SetButtonText(4,"库存信息");
m_ToolBar.SetButtonText(6,"日结查询");
m_ToolBar.SetButtonText(7,"用户管理");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
这端代码显示在空白的supermaket的主窗体上不是6个button状态的图标吗?他们来之导入的6个小图片。我问的是6个button状态的图标的消息映射是怎么添加上去的啊?
谢谢
2010-07-12
地板
BEGIN_MESSAGE_MAP(CSuperMarketDlg, CDialog)
//{{AFX_MSG_MAP(CSuperMarketDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(1001,OnShangp)-------------------------------------
ON_COMMAND(1002,OnSellq)-----------------------------------
ON_COMMAND(1004,OnDepot)------------------------------
ON_COMMAND(1005,OnNdepot)-----------------------------------
ON_COMMAND(1007,OnDay)-------------------------------------
ON_COMMAND(1008,OnUser)--------------------------------
ON_COMMAND(ID_MENU_SHANGP, OnMenuShangp)
ON_COMMAND(ID_MENU_EMP, OnMenuEmp)
ON_COMMAND(ID_MENU_PROVIDE, OnMenuProvide)
ON_COMMAND(ID_MENU_BACK, OnMenuBack)
ON_COMMAND(ID_MENU_SELLQ, OnMenuSellq)
ON_COMMAND(ID_MENU_BACKQ, OnMenuBackq)
ON_COMMAND(ID_MENU_DEPOT, OnMenuDepot)
ON_COMMAND(ID_MENU_NDEPOT, OnMenuNdepot)
ON_COMMAND(ID_MENU_DAY, OnMenuDay)
ON_COMMAND(ID_MENU_MONTH, OnMenuMonth)
ON_COMMAND(ID_MENU_USER, OnMenuUser)
ON_COMMAND(ID_MENU_ABOUT, OnMenuAbout)
ON_COMMAND(ID_MENU_BDEPOT, OnMenuBdepot)
ON_COMMAND(ID_MENU_BDEPOTQ, OnMenuBdepotq)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
我想知道这6个消息响应怎么添加上去的。能讲的详细一点吗? 谢谢
//{{AFX_MSG_MAP(CSuperMarketDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(1001,OnShangp)-------------------------------------
ON_COMMAND(1002,OnSellq)-----------------------------------
ON_COMMAND(1004,OnDepot)------------------------------
ON_COMMAND(1005,OnNdepot)-----------------------------------
ON_COMMAND(1007,OnDay)-------------------------------------
ON_COMMAND(1008,OnUser)--------------------------------
ON_COMMAND(ID_MENU_SHANGP, OnMenuShangp)
ON_COMMAND(ID_MENU_EMP, OnMenuEmp)
ON_COMMAND(ID_MENU_PROVIDE, OnMenuProvide)
ON_COMMAND(ID_MENU_BACK, OnMenuBack)
ON_COMMAND(ID_MENU_SELLQ, OnMenuSellq)
ON_COMMAND(ID_MENU_BACKQ, OnMenuBackq)
ON_COMMAND(ID_MENU_DEPOT, OnMenuDepot)
ON_COMMAND(ID_MENU_NDEPOT, OnMenuNdepot)
ON_COMMAND(ID_MENU_DAY, OnMenuDay)
ON_COMMAND(ID_MENU_MONTH, OnMenuMonth)
ON_COMMAND(ID_MENU_USER, OnMenuUser)
ON_COMMAND(ID_MENU_ABOUT, OnMenuAbout)
ON_COMMAND(ID_MENU_BDEPOT, OnMenuBdepot)
ON_COMMAND(ID_MENU_BDEPOTQ, OnMenuBdepotq)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
我想知道这6个消息响应怎么添加上去的。能讲的详细一点吗? 谢谢
2010-07-14
5L
我在上面的两段代码添加后,在主窗体上出现6个图标,单击没有反应。1但是不知道工具栏对应那个窗口,具体的类是那个?在代码的那一段?
2并且在resour.h中查到的图标对应的消息值不对,只有100多,应该在1000以上才对。我是那里出问题了,能具体解释一下吗?
resour.h 中的值::
#define IDI_ICONSELLQ 129
#define IDI_ICONUSER 130
#define IDI_ICON1 131
#define IDI_ICONNDEPOT 133
#define IDI_ICONDAY 134
#define IDI_ICONDEPOT 135
#define IDI_ICONSHANGP 136
3.请问查找消息映射对应的函数在那个文件中,用什么工具打开??
4我在*。h中并没有找到AFX_MSG_MAP,请问手动添加消息映射需要的AFX_MSG_MAP(宏)添加在什么地方??
5.如果要在资源文件SuperMarket.rc中添加消息的编号,怎么添加,号码从多少开始?在资源文件的什么地方开始添加?
谢谢
2并且在resour.h中查到的图标对应的消息值不对,只有100多,应该在1000以上才对。我是那里出问题了,能具体解释一下吗?
resour.h 中的值::
#define IDI_ICONSELLQ 129
#define IDI_ICONUSER 130
#define IDI_ICON1 131
#define IDI_ICONNDEPOT 133
#define IDI_ICONDAY 134
#define IDI_ICONDEPOT 135
#define IDI_ICONSHANGP 136
3.请问查找消息映射对应的函数在那个文件中,用什么工具打开??
4我在*。h中并没有找到AFX_MSG_MAP,请问手动添加消息映射需要的AFX_MSG_MAP(宏)添加在什么地方??
5.如果要在资源文件SuperMarket.rc中添加消息的编号,怎么添加,号码从多少开始?在资源文件的什么地方开始添加?
谢谢
2010-07-16
7L
(1)CToolBar是工具栏类
(2)下边是为工具栏按钮设置命令索引
UINT array[8];
for(int i=0;i<8;i++)
{
if(i==2 || i==5)
array[i] = ID_SEPARATOR; //第3、6个按钮为分隔条
else
array[i] = i+1001;
}
(3)下面这部分是消息映射,前面设置的工具栏按钮命令索引就是在这里使用的
ON_COMMAND(1001,OnShangp)-------------------------------------
ON_COMMAND(1002,OnSellq)-----------------------------------
ON_COMMAND(1004,OnDepot)------------------------------
ON_COMMAND(1005,OnNdepot)-----------------------------------
ON_COMMAND(1007,OnDay)-------------------------------------
ON_COMMAND(1008,OnUser)--------------------------------
(2)下边是为工具栏按钮设置命令索引
UINT array[8];
for(int i=0;i<8;i++)
{
if(i==2 || i==5)
array[i] = ID_SEPARATOR; //第3、6个按钮为分隔条
else
array[i] = i+1001;
}
(3)下面这部分是消息映射,前面设置的工具栏按钮命令索引就是在这里使用的
ON_COMMAND(1001,OnShangp)-------------------------------------
ON_COMMAND(1002,OnSellq)-----------------------------------
ON_COMMAND(1004,OnDepot)------------------------------
ON_COMMAND(1005,OnNdepot)-----------------------------------
ON_COMMAND(1007,OnDay)-------------------------------------
ON_COMMAND(1008,OnUser)--------------------------------