MFC学习笔记(六)
来源:互联网 发布:端口有感叹号 编辑:程序博客网 时间:2024/05/16 11:50
一:移位运算,求解释?
情形一:
----------------------------------------------------
int i=1<<32;
执行后i的值为0
-----------------------------------------------------
情形二:
----------------------------------------------------
int a=32;
int i=1<<a;
执行后i的值为1
----------------------------------------------------
二:
void CMainWindow::OnPaint(){CPaintDC dc(this);dc.SelectObject(&CBrush(RGB(255,0,0))); //State 1, 不可行//CBrush brush=CBrush(RGB(255,0,0)); //State 2, 可行//dc.SelectObject(&brush);//dc.SelectObject(new CBrush(RGB(255,0,0))); //State 3, 可行,记得deleteCPen pen=CPen(PS_SOLID,10,RGB(0,255,0));CPen* pOldPen=dc.SelectObject(&pen);dc.Rectangle(10,10,100,100);}
三:画弧函数CDC::Arc理解
函数定义BOOL CDC::Arc(LPCRECT lpRect, POINT ptStart, POINT ptEnd),其中lpRect为圆/椭圆的外接矩形,ptStart为弧的起点,ptEnd为弧的终点,
画弧的规则为逆时针进行绘制。当ptStart,ptEnd为圆/椭圆上的点时容易理解,当ptStart,ptEnd不在圆/椭圆上时,分别连接圆心点和ptStart,
连接圆心点和ptEnd点,能确定两条直线,通过直线与圆的交点来确定弧的起始点和结束点。
实验一:ptStart,ptEnd在圆上
void CMainWindow::OnPaint(){CPaintDC dc(this);CRect rect(0,0,100,100);CPoint point1(100,50);CPoint point2(0,50);dc.Arc(rect,point1,point2);}
void CMainWindow::OnPaint(){CPaintDC dc(this);CRect rect(0,0,100,100);CPoint point1(100,0);CPoint point2(0,0);dc.MoveTo(50,50);dc.LineTo(100,0);dc.MoveTo(50,50);dc.LineTo(0,0);dc.Arc(rect,point1,point2);}
四:创建透明画刷:
CBrush* pbrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
创建透明画笔:
CPen pen=CPen(PS_NULL,10,RGB(0,0,255));
CPen* pPen=CPen::FromHandle((HPEN)GetStockObject(NULL_PEN));
创建透明 背景:
CPaintDC dc(this);
dc.SetBkMode(TRANSPARENT)
五:画尺子程序,了解SetBkMode(TRANSPARENT)的作用
void CMainWindow::OnPaint(){CPaintDC dc(this);dc.SetMapMode(MM_LOENGLISH);dc.SetTextAlign(TA_CENTER|TA_BOTTOM);dc.SetBkMode(TRANSPARENT); //对比下有无该句的差别CBrush brush(RGB(255,255,0));CBrush* pOldBrush=dc.SelectObject(&brush);dc.Rectangle(100,-100,1300,-200);dc.SelectObject(pOldBrush);for(int i=100;i<1300;i+=25){dc.MoveTo(i,-192);dc.LineTo(i,-200);}for(int i=150;i<1300;i+=50){dc.MoveTo(i,-184);dc.LineTo(i,-200);}for(int i=200;i<1300;i+=100){dc.MoveTo(i,-175);dc.LineTo(i,-200);CString string;string.Format(_T("%d"),(i/100)-1);dc.TextOut(i,-175,string);}}
- MFC学习笔记(六)
- VC++/MFC学习笔记(六)
- 六、MFC 程序的生死因果 (学习笔记)
- MFC六大关键技术之仿真学习笔记(六)
- Dessecting MFC 阅读笔记 六
- 吕鑫MFC学习系列六
- MFC学习笔记之六————更改appwizard生成的窗口外观
- MFC学习笔记之六————更改appwizard生成的窗口外观
- JDBC学习笔记(六)
- Ajax学习笔记(六)
- Allegro学习笔记六
- 学习笔记(六)
- 汇编语言学习笔记(六)
- C#学习笔记(六)
- HTML学习笔记六
- Struts2学习笔记六
- DWR学习笔记(六)
- Lucene学习笔记(六)
- javascript : 复选框的单选,全选,全不选,反选。
- 开发者通过Maven管理项目从中受益
- spark 1.0 编译支持 hadoop 2.4.0
- 迅雷看看播放器4.9.15.2156 如何观看超过5分钟以上的视频?
- 装饰者模式(一)
- MFC学习笔记(六)
- 我的手机-我的嵌入式-2
- 数据结构:树的遍历!按先序遍历创建一棵树,分别以先序、中序、后序遍历输出
- 端口是否被占用
- RMAN 备份与恢复 实例
- 只能输入数字和小数点(一个小数点)
- SharePoint World Clock 世界时钟
- 蔡力能心得2
- 深入理解Javascript 函数作用域 闭包