为什么在选用新画笔的时候要同时将原先的画笔保存起来
例如
CPen *pPen,*pOldPen;
CPoint p1(15,15),p2(220,220);
int ps[6]={PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT,PS_INSIDEFRAME};
int i;
pDC->SetMapMode(MM_TEXT);
pDC->SetViewportOrg(0,0);
for(i=0;i<6;i++)
{
pPen=new CPen(ps[i],0,RGB(0,0,0));
pOldPen=pDC->SelectObject(pPen);
pDC->Rectangle(CRect(p1,p2));
p1.Offset(12,12);
p2.Offset(-12,-12);
pDC->SelectObject(pOldPen);
delete pPen;
段代码中pOldPen=pDC->SelectObject(pPen);和 pDC->SelectObject(pOldPen); 都是什么意思 尤其是第一句不太明白
c++编程制图
答案:2 悬赏:50
解决时间 2021-03-21 07:55
- 提问者网友:先森请一心
- 2021-03-21 04:23
最佳答案
- 二级知识专家网友:山鬼偶尔也合群
- 2021-03-21 06:02
SelectObject这个函数就是选择另一种画笔 他的参数就是新画笔的指针 返回值是旧画笔的指针 所以用poldpen保存返回值 以保证再换回原来的画笔 因为除了你这个地方画图外可能程序的其他部分也要画图而不希望其他人随便改变画笔 所以你画完了就换回原来的
全部回答
- 1楼网友:眠于流年
- 2021-03-21 06:25
#include<iostream> using namespace std; int main() { int num[10]; int sum=0; int count=0; cout<<"input ten integers:"; for(int i=0;i<10;i++) { cin>>num[i]; } for(int k=0;k<10;k++) { if(num[k]>3&&num[k]<100) { count++; sum+=num[k]; } } if(sum==0) cout<<"the result is 0!"<<endl; else cout<<"the result is:"<<(double)sum/count<<endl; return 0; }
他们有的答案好像忘了考虑没有数字在3到100中的情况,所以不完善,程序在被除数为零时会抛出异常的!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯