我想做一个工具箱(就是自己做一个工具栏,上面有很多按钮分别完成不同的功能)。
于是做了一个类CStyleBar。此类从CToolBar继承而来。
在CStyleBar类的OnPaint()函数中,我画出工具箱上的按钮: void CStyleBar::OnPaint()
{
CPaintDC dc(this); // device context for painting
//首先确定按纽在此窗口内的矩形,只需要初始化一次,因此设置了静态变量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。此类从CToolBar继承而来。
在CStyleBar类的OnPaint()函数中,我画出工具箱上的按钮: void CStyleBar::OnPaint()
{
CPaintDC dc(this); // device context for painting
//首先确定按纽在此窗口内的矩形,只需要初始化一次,因此设置了静态变量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)); //否则是凸出来的效果 }}
可是我运行之后怎么就是一个空白的工具栏啊?上面一个按钮都没有。
我就想问是怎么回事,是不是还要在哪些地方进行设置啊?谢谢!
解决方案 »
- 请高人解答:VS2008中check box如何添加关联变量?
- ShellExecute怎么使用系统默认浏览器在新窗口打开网页
- 访问view里面变量的问题
- 要使树控件的父项没有图标,而子项都有图标应该如何实现呢?
- 关于先启动一个DoModal对话框的问题
- MFC中按钮IDYES对应的字符串资源ID怎么取得?
- CRectTracker类问题,老没人回答,是不是没人懂啊?
- 菜鸟想问我的机器上装了vc++6.0,还能装vc.net吗?
- 请问如何得到带参数的多项式相乘的结果?
- 新公司要我编写这样一个程序,为了我的饭碗,大家都来帮我看看(来者有分)谢谢了
- fackpear(云梦天竺)来拿分,麻烦斑竹不要删
- 关于VC中控件的一个问题
那我应该怎么改动一下让OnPaint()执行呢?