我想做一个工具箱(就是自己做一个工具栏,上面有很多按钮分别完成不同的功能)。
于是做了一个类CStyleBar。此类从CToolBar继承而来。
在CStyleBar类的OnPaint()函数中,我画出工具箱上的按钮: void CStyleBar::OnPaint()
{
CPaintDC dc(this);
//首先确定按纽在此窗口内的矩形,只需要初始化一次,因此设置了静态变量count记数
static int count = 0;
if(count == 0) //设置六个矩形按钮
{
count++;
for(int i=0; i<3; i++)
{
m_rect[2*i].SetRect(20, 20+i*33, 20+27, 20+i*33+27);
m_rect[2*i+1].SetRect(20+27+6, 20+i*33, 20+27+6+27, 20+i*33+27);
}
}
//画出每一个按纽(未按下的状态)
for(int i=0; i<BtnCount; i++) //BtnCount是按钮的个数
{
if(m_nPick == i) //鼠标选定哪个按钮,哪个按钮就凹下去
dc.Draw3dRect(m_rect[i], RGB(0, 0, 0), RGB(255, 255, 255));
else //否则是凸出来的效果
dc.Draw3dRect(m_rect[i], RGB(255, 255, 255), RGB(0, 0, 0));
}}可是我运行之后就是出现一个空白的工具栏,上面一个按钮都没有。
经过测试,根本就没有执行CStyleBar类的构造函数以及OnPaint()函数。
那我应该怎么改动一下让CStyleBar类的OnPaint()执行呢?
谢谢!
于是做了一个类CStyleBar。此类从CToolBar继承而来。
在CStyleBar类的OnPaint()函数中,我画出工具箱上的按钮: void CStyleBar::OnPaint()
{
CPaintDC dc(this);
//首先确定按纽在此窗口内的矩形,只需要初始化一次,因此设置了静态变量count记数
static int count = 0;
if(count == 0) //设置六个矩形按钮
{
count++;
for(int i=0; i<3; i++)
{
m_rect[2*i].SetRect(20, 20+i*33, 20+27, 20+i*33+27);
m_rect[2*i+1].SetRect(20+27+6, 20+i*33, 20+27+6+27, 20+i*33+27);
}
}
//画出每一个按纽(未按下的状态)
for(int i=0; i<BtnCount; i++) //BtnCount是按钮的个数
{
if(m_nPick == i) //鼠标选定哪个按钮,哪个按钮就凹下去
dc.Draw3dRect(m_rect[i], RGB(0, 0, 0), RGB(255, 255, 255));
else //否则是凸出来的效果
dc.Draw3dRect(m_rect[i], RGB(255, 255, 255), RGB(0, 0, 0));
}}可是我运行之后就是出现一个空白的工具栏,上面一个按钮都没有。
经过测试,根本就没有执行CStyleBar类的构造函数以及OnPaint()函数。
那我应该怎么改动一下让CStyleBar类的OnPaint()执行呢?
谢谢!
解决方案 »
- findfirstfile只找到点这个符号
- 如何给从互联网给某台电脑发UDP数据报
- yemingwy在吗?问你个问题呀
- VS2005 sp1补丁 和 VC8 sp1补丁 是不是一回事啊?
- 问个难点的问题
- 我在注册表中能看到ActiveX控件,但是不知道怎么查出这个控件所在的硬盘地址?
- 请教,我ip经常被冲突,想做个在ip被冲突后就自动修复的修复,并且可以很容易改变ip的小程序
- 我学VC断断续续也2年了,可一点长进也没有,很郁闷,望大家指点迷津
- 简单问题.谁可以告诉我?立即揭帖!~~~~~~~~~~~~~~~
- 一个简单的问题
- 如何实现telnet客户端的功能
- 请问在声卡上录音成功,怎么在MODEM上录音呢?
哪位大虾能再帮我看看啊