初學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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章