• <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-7-14 21:11 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 38次 | 進入軟件測試論壇討論

    領測軟件測試網 作者: 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/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>