• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用漸變色填充背景

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    作者: bull77 Windows 的圖形界面為我們提供了無窮的方便和視覺上的快感,由淺及深的顏色給我們無盡的遐想。漸變色的實現有多種方法,好多資料上介紹了利用調色板的方法實現,其過程及其的復雜,需要我們具有一定的圖形編程的基礎,下面我將向大家介紹一種比
    作者: bull77

    Windows的圖形界面為我們提供了無窮的方便和視覺上的快感,由淺及深的顏色給我們無盡的遐想。漸變色的實現有多種方法,好多資料上介紹了利用調色板的方法實現,其過程及其的復雜,需要我們具有一定的圖形編程的基礎,下面我將向大家介紹一種比較簡單的方法,即使你一點都不了解圖形編程和調色板的概念。

      第一步:新建單文檔工程,一切參數都取默認值。

      第二步:在shadowview.h中定義變量如下:

    private:
    int ColorR;
    int ColorG;

      第三步:在shadowview.cpp的構造函數中初始化變量如下:

    CShadowView::CShadowView()
    {
     // TODO: add construction code here
     ColorR = 255;
     ColorG = 255;
    }


      第四步:在Ondraw()中添加如下的實現代碼:

    void CShadowView::OnDraw(CDC* pDC)
    {
     CShadowDoc* pDoc = GetDocument();
     ASSERT_VALID(pDoc);
     // TODO: add draw code for native data here
     CRect m_rcClient;
     file://得到客戶區域的填充矩形
     GetClientRect(&m_rcClient);
     int nWidth = m_rcClient.Width();
     int nHeight = m_rcClient.Height();
     CRect rectangle;
     file://分割客戶區域成小矩形,逐個填充
     for(int i = 0;i < nWidth;i++ )
     {
      rectangle.SetRect(i, 0, i+1, nHeight);
      pDC->FillSolidRect(&rectangle, RGB(ColorR, ColorG, 255-MulDiv(i, 255, nWidth)));
      }
    }





      現在編譯、運行程序,我們可以發現單文檔界面的背景已經被黃漸變色填充。接下來,我們實現在界面上點擊鼠標左鍵,實現背景顏色的改變。

      第五步:在ClassWizard中添加鼠標左鍵的消息處理映射函數,并添加如下代碼:

    void CShadowView::OnLButtonDown(UINT nFlags, CPoint point)
    {
     file://生成小于255的隨機數,給ColorR和ColorG賦值
     int nRand = rand();
     float fMap = (float)255/RAND_MAX;
     ColorR = (UINT)(float)nRand*fMap + 0.5f;
     nRand = rand();
     fMap = (float)255/RAND_MAX;
     ColorG = (UINT)(float)nRand*fMap + 0.5f;
     file://更新界面
     Invalidate();
     CView::OnLButtonDown(nFlags, point);
    }


      好了,所有的功能都實現了,在界面上點擊鼠標左鍵,我們可以發現,背景以不同的漸變色填充。 

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>