我是有一个在标题栏的按钮。怎么移动到工具栏按钮上呢?
对了。工具栏按钮创建后怎么添加对应的消息相应。那位高手能详细的说一下呢?谢谢。
对了。工具栏按钮创建后怎么添加对应的消息相应。那位高手能详细的说一下呢?谢谢。
解决方案 »
- 如何判断以个文件是否为二进制(.exe)文件,非判断后缀名的方式
- 关于CAsyncSocket::Connect的问题
- 如何使自己的软件在2000 XP 2003下都兼容
- 关于按下Ctrl+Alt+Del线程中断的问题
- 如何改变ocx控件的大小?
- 一个很简单的CMenu问题,分又高,大家快进来啊!!!!!
- 怎么用制表符输出啊??急啊
- 静态图像中的数字识别问题。请大侠给个思路。谢了
- VC怎样读取连续帧的JEG图象,并且显示出来??
- 控制台多线程安全退出
- 找VisualC++6.0时尚编程百例的电子书
- MSComm 控件中SetInputlen(1) 使用, OnComm事件响应,每次读一个,但是为什么只响应两次后OnComm事件没有反应,这时输入缓冲区明明还有字符呀
ON_COMMAND至于在那增加,你还是先看看 侯捷的<<深入浅出MFC>>
编辑工具栏资源,可以在上面添加按钮,设置按钮ID。代码中通过添加ON_COMMAND宏和响应函数来响应。
然后在对话类文件中定义工具栏命令ID
#define ID_BUTTON1 501
#define ID_BUTTON2 502
#define ID_BUTTON3 503
接着我们就要创建工具栏资源了,用于工具栏按钮的显示图片
方法是进入ResourceView(资源视图选项卡),再随便选中一个选项,右击选择插入,在弹出的对话框里选中Toolbar,点新建。接着创建三个按钮:
好了,下面把三个按钮ID号,改成上面宏定义的ID号,如果要改变“天”字按钮,选中该按钮,然后回车键,就会弹出一个对话框,
在ID项填入ID_BUTTON1,就可以了。接着依次把两个ID号改为ID_BUTTON2,ID_BUTOON3。在这个对话框里也可以改变工具栏按钮的大小。
接下来我们样在对话框类的OnInitDialog函数里的所有代码之后,return TRUE;之间添加以下语句:
m_Toolbar.Create(this);//创建工具栏控件
m_Toolbar.LoadToolBar(IDR_TOOLBAR1);//装载工具栏资源
CRect rect(100,100,200,200);//
m_Toolbar.MoveWindow(rect);//移动工具栏在父窗口的位置
m_Toolbar.ShowWindow(SW_SHOW);//显示工具栏
但这样显示工具栏不是很方便,特别是当窗口大小改变后,还要计算工具栏在窗口中的位置,有没有什么方法,可以根据窗口大小自动调整工具栏到合适的位置呢?答案是肯定的,RepositionBars函数可以做到。实现方法如下,把上面的语句换成下面的:
m_Toolbar.Create(this);//创建工具栏控件
m_Toolbar.LoadToolBar(IDR_TOOLBAR1);//装载工具栏资源
//该函数用于显示工具栏,并根据窗口大小自动调整工具栏的位置
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
而响应工具栏按钮单击消息,跟前面介绍的添加按钮单击消息差不多,进入类向导,找到要添加的工具栏按钮ID,添加COMMAND消息响应函数
如果,运行时点击工具条上的按钮没反应 ,你可以把工具条上的按钮ID改为与Menu上的Id对应起来 即可