在下面的函数中,注释中的if else语句和 switch语句逻辑上是等价的,但是if else语句却不能修改线的形状???,请问这是为什么????????void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//作图
CClientDC dc(this);
CPen pen;
/*if (m_nLineStyle == 0) //实线
{
pen.CreatePen(PS_SOLID, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);
}
else if (m_nLineStyle == 1) //虚线
{
pen.CreatePen(PS_DASH, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);
}
else //点线
{
pen.CreatePen(PS_DOT, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);
}*/ /*CPen pen(m_nLineStyle, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);*/
switch(m_nLineStyle) //为什么用这边的switch语句可以,用上面的if else语句却不行???
{
case 0:
pen.CreatePen(PS_SOLID, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);
break;
case 1:
pen.CreatePen(PS_DASH, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);
break;
case 2:
pen.CreatePen(PS_DOT, m_nLineWidth, RGB(255, 0, 0)); //设置画笔颜色
dc.SelectObject(&pen);
break;
default:
NULL;
}
}
解决方案 »
- WINAPI,请问这5句是什么意思
- 如何用电信3g huawei网卡自动连接挂断?
- 关于DIID_HTMLDocumentEvents2
- vc 6 写的com,用本地C#写的程序可以顺利调用,但是通过webservice就不能调用,请教这是什么原因
- 侯捷的<深入浅出MFC>里面的程序,怎么运行阿??怎么总是出错
- 请教如何快速得出两个字符串列表的并集、交集和差集?
- 我用ATL编的COM组件,get、put函数怎么出错阿?急
- 请问VC中编辑标准ini文件的函数是什么?
- 在客户机网页中的ActiveX控件,自动更新为Web服务器上新版本的ActiveX控件?
- Sqlite3 查找的数据能不能够得到数据长度
- 套接字编程每次只能接收4个数据,请问send和recv怎样把数据一次性发送和接收完整?
- 单文档程序在视图类的OnCreate函数中怎么改变状态栏的文字
你先调试看看if-else的分支是不是都能执行到
dc.SelectObject(&pen);是不是这个造成的?
if ... else if 是一个嵌套跳转,有嵌套层数限制
switch...是条件跳转(理解为一个扫描面),对于条件数没有限制