初学mfc——画像素点 画线 画矩形

//定义坐标系

CRect rect;
    GetClientRect(&rect);//其实现在我也不太懂这句话有什么具体意思  !@@!!

//采用自定义的形式 窗口和视区的坐标系都自己定义
    pDC->SetMapMode(MM_ANISOTROPIC);

//经常用的模式还有 MM_TEXT(每个逻辑坐标对应一个设备坐标 正x向右 正y向下)

//定义视区,通过与窗口设置的比较  设置成 x正向 右 ,,y正向上                            pDC->SetWindowExt(rect.Width(),rect.Height());
    pDC->SetViewportExt(rect.Width(),-rect.Height());

//设置视区原点,视区原点是设备坐标系下的
    pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);

//创建画笔 ----绘制区域外边界

画笔三要素 1、线型 2、宽度 3、颜色
    //DASH虚线 /DASHDOT点虚线/ DOT点线/SOLID
    //第三个参数是color类型 ,本质是32位的颜色数据类型,如0x0000ff(红色)
    //也可以用RGB宏来创建 RGB(255,0,0)也是红色 RGB(ff,0,0)

创建画笔可以使用
    BOOL CreatePen(PS_DASH,1,RGB(255,0,0));

也可以用构造函数

CPen(npenstyle,nwidth,crcolor)

//创建画刷-----图形内部进行填充  所以仅对闭合图形有效

默认的画刷是白色的  所以在画矩形啊 等封闭的图形时 内部用默认的白色画刷填充,就显现不出来填充色了
    //画刷分为 1、实体画刷CreateSolidBrush(),

2、 阴影画刷CreateHatchBrush(int nIndex,COLORREF,crColor)
    //以下三种 画刷都可以用CBrush()来创建 区别于参数个数来创建不同的画刷
    BOOL CreateSolidBrush(RGB(255,0,0));
    BOOL CreateHashBrush(HS_CROSS,0xff0000);
    //CreatePatternBrush(*pBitmap) 创建逻辑画刷  位图可以使从资源中导入的DDB位图

使用位图画刷时 要确保位图在画刷中的相对位置不变 ,用SetBrushOrg()设置画刷起点

//选入GDI对象 GDI对象在创建后 只有选入上下文中才能使用
    //CPen* pDC->SelectObject(CPen* cpen)
    //CBrush* pDC->SelectObject(CBrush *cbrush)
    //CBitmap* pDC->SelectObject(CBitmap * pbitmap)
    //上述三个函数 都是设置上下文类所选中的画笔、 画刷 、位图,返回的指针是指向被替换掉的画笔 、画刷、 位图的指针

//绘制像素点函数 2种 1、返回画的点的RGB值SetPixel(10,10,RGB(255,0,0));

2、不返回RGB值 SetPixelV(10,10,RGB(255,255,0))
    COLORREF color=GetPixel(10,10);//返回 该点的RGB值

//绘制线段  要先创建画笔 CPen *poldpen,newpen;

newpen.CreateCPen(PS_SOLID,1,RGB(0,ff,0));

poldpen=pDC->SelectObject(&newpen);

2个BOOL LineTo(x,y);从当前位置划线到xy处,并改变当前位置为 xy
                //CPoint MoveTo(x,y);只是将当前位置 移动到xy,并不划线

//绘制矩形 Rectangle

时间: 2024-10-17 07:31:46

初学mfc——画像素点 画线 画矩形的相关文章

[游戏学习25] MFC 橡皮筋画线效果

>_<:这是给出窗口内外不同情况的处理展示的例子. >_<:MouseCap.h 1 #include<afxwin.h> 2 class CMyApp :public CWinApp 3 { 4 public: 5 virtual BOOL InitInstance(); 6 }; 7 class CMainWindow:public CFrameWnd 8 { 9 protected: 10 BOOL m_bTracking; //标志:鼠标按下为真,否则为假 11

MFC画线功能总结

MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始端点,其二,利用不同的方法实现画线.下面着重学习总结画线功能实现方法. 在OnLButtonDown函数中记录起始端点,CPoint m_ptOrigin = point; 在OnLButtonUp函数中实现画线.方法如下: 画线方法一:利用SDK全局函数实现视图窗口画线功能 //获取设备描述表 HDC hdc; //调用全局函数获得当前窗口的设备描述表,CWnd::m_hWnd根据继承原理,CDrawView继承了CWnd类的数据成

GDI+学习之 ------ 画线、区域填充、写字

<精通GDI编程>里的代码,在学习过程中对它加以总结,以防以后用到,所有代码都是在MFC 单文档中实现的,写在View::OnDraw(CDC */*pDC*/)中 画线/边框(Pen) 1.画单线-------DrawLine [cpp] view plaincopy Pen pen(Color(255,0,0,0),3); PointF L_PTStart(0,0); PointF L_PTEnd(100,10); graphics.DrawLine(&pen,L_PTStart,

IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

转自:http://blog.csdn.net/zhibudefeng/article/details/8463268 [cpp] view plain copy // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { CGC

Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{    CGContextRef context = UIGraphicsGetCurrentContext();         /*NO.1画一条线     CGContex

[stm32] 利用uc-gui封装画图和画线函数移植51上的模拟动画

>_<:这里的动画是黄色矩形区域中一个模仿俯视图的起重机运作动画,一个是模仿主视图的吊钩的运动.通过改变初始Init函数中的数据b_x,b_y实现矩形区域的移动.当实时采集时要首先根据起重机的实际情况改变比例,当传感器传来数据时就相当于这里的run函数,只要把传感器数据接收函数和相关函数结合即可. >_<:main code: 1 #include "stdlib.h" 2 #include "GUI.H" 3 /* 4 颜色 5 */ 6

VC几种不同的画线方法

1. 画线 方法I:使用HDC (SDK模式) HDC hDC; hDC = ::GetDC(m_hWnd); //此处要用全局的::GetDC,否则默认用CDC的. MoveToEx(hDC, point1.x, point1.y, NULL); //MoveToEx,先移到初始点,然后再画线 LineTo(hDC, point2.x, point2.y); ::ReleaseDC(m_hWnd, hDC); //释放也要用全局::ReleaseDC 方法II:使用CDC(MFC模式) CDC

PHP合成图片、生成文字、居中对齐、画线、矩形、三角形、多边形、图片抗锯齿、不失真 高性能源码示例

function generateImg($source, $text1, $text2, $text3, $font = './msyhbd.ttf') { $date = '' . date ( 'Ymd' ) . '/'; $img = $date . md5 ( $source . $text1 . $text2 . $text3 ) . '.jpg'; if (file_exists ( './' . $img )) { return $img; } $main = imagecrea

【转】IOS Quartz 各种绘制图形用法-实现画图片、写文字、画线、椭圆、矩形、棱形等

// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{ CGContextRef context = UIGraphicsGetCurrentContext(); /*NO.1画一条线 CGContextSetRGBStrokeCo