vc c++项目开发全程实录 第6章 超市进销存管理系统中图标的消息响应怎么添加??
发表在C语言图书答疑 2010-07-10
是否精华
版块置顶:
第6章 超市进销存管理系统中有impt的小图标icon,小图标经过设置在空白的对话框上,设置成button状态的图标的消息响应怎么添加??----------其中菜单的消息响应会添加。但是button状态的图标的消息响应添加不上。我在添加消息映射afx ;begin--end ;函数的实现3处都添加完毕-----------手动添加的。但是运行时对话框的鼠标的点击button状态的图标的消息传递不出去;不知道作者的button状态的图标的消息响应是怎么添加的。

希望专家给与解答::谢谢
分享到:
精彩评论 9
8031
学分:0 LV1
2010-07-12
沙发
读者你好
您所说的impt小图标是指那个图标,能否告诉在那个窗体上?资源ID是多少

通常我建立带图标的按钮,通常需要重新创建一个继承自CButton的类,
然后在DrawItem成员函数中绘制图标。
使用该类的方法是,先根据按钮创建一个成员变量,然后设置按钮的自绘属性(owner draw)
在头文件将CButton改为派生的类。
然后按钮的单击事件,就可以像普通按钮一样设置。
mhnh101
学分:0 LV1
TA的每日心情
开心
2023-04-30 07:49:16
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状态的图标的消息映射是怎么添加上去的啊?

谢谢
mhnh101
学分:0 LV1
TA的每日心情
开心
2023-04-30 07:49:16
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个消息响应怎么添加上去的。能讲的详细一点吗?       谢谢
stabber
学分:0 LV1
2010-07-13
4L
你说的那是工具栏,消息映射是手动添加的,你先创建工具栏窗口,然后设置工具栏按钮,最后手动添加消息映射和功能实现就可以了
mhnh101
学分:0 LV1
TA的每日心情
开心
2023-04-30 07:49:16
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中添加消息的编号,怎么添加,号码从多少开始?在资源文件的什么地方开始添加?
谢谢
mhnh101
学分:0 LV1
TA的每日心情
开心
2023-04-30 07:49:16
2010-07-14
6L
我记不清去添加消息映射的宏AFX_MSG_MAP在那个位置,怎么查找到对应的编号?以及上面提到的问题、

希望给与解答(详细)谢谢
stabber
学分:0 LV1
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)--------------------------------
mhnh101
学分:0 LV1
TA的每日心情
开心
2023-04-30 07:49:16
2010-07-16
8L
谢谢解答。我已经能吧消息响应加入了。谢谢指导
stabber
学分:0 LV1
2010-07-22
9L
已结帖
首页上一页 1 下一页尾页 9 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照