• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對現實,超越自己
            逆水行舟,不進則退
            posts - 269,comments - 32,trackbacks - 0

            以上是源碼及演示程序下載地址

            (文章原地址 http://www.codeproject.com/Articles/24969/An-MFC-picture-control-to-dynamically-show-picture

            Introduction 介紹

            這篇文章描述的是一個可以用于在對話框上顯示各種主流類型圖片 (如 BMP, GIF, JPEG...) MFC控件

            Background 背景

            我花了一些時間去搜索可以用于顯示圖片的MFC控件, 但卻沒有發現合適的。 所以我決定自己做一個輕量級,靈活度高的圖片控件(Picture control)去顯示各種類型的圖片。

            Using the code 如何使用

            這個控件內部使用的是GDI+庫,所以請在使用時把GdiPlus.lib加入到你的工程中(include libraries)。

            使用這個控件時,先用VC++對話框設計器創建一個靜態文字控件(static text control 。之后用MFC向導為這個控件分配一個控件變量,類型定義為CPictureCtrl。

            現在你可以用你的控件裝載顯示圖片了,你只需要在這幾個CPictureCtrl::LoadFrom... 函數, 選擇合適你需要的的進行調用。裝載后控件會自動更新并顯示圖片。

            要清除掉控件中顯示的圖片,調用CPictureCtrl::FreeImage即可。

            你的圖片會被自動調整到控件的大小,這可能會改變圖片原先的長寬比例。

             Collapse | Copy Code
            class CPictureCtrl :     
            public CStatic
            {
            public:
               //Constructor
               CPictureCtrl(void);
               //Destructor
               ~CPictureCtrl(void);

            public:
               //Loads an image from a file
               BOOL LoadFromFile(CString &szFilePath);
               //Loads an image from an IStream interface
               BOOL LoadFromStream(IStream* piStream);
               //Loads an image from a byte stream;
               BOOL LoadFromStream(BYTE* pData, size_t nSize);
               //Loads an image from a Resource
               // BOOL LoadFromResource(HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType);
               //Overload - Single load function
               BOOL Load(CString &szFilePath);
               BOOL Load(IStream* piStream);
               BOOL Load(BYTE* pData, size_t nSize);
               // BOOL Load(HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType);
               //Frees the image data
               void FreeData();

            protected:
               virtual void PreSubclassWindow();
               //Draws the Control
               virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
               virtual BOOL OnEraseBkgnd(CDC* pDC);

            private:
               //Internal image stream buffer
               IStream* m_pStream;
               //Control flag if a pic is loaded
               BOOL m_bIsPicLoaded;
               //GDI Plus Token
               ULONG_PTR m_gdiplusToken; };

            Points of interest

            這個控件是基于 CStatic control 設計的(基類使用的是CStatic)。所以你可以使用CStatic control的各種功能,但它并不會顯示任何文字。對GDI+庫的使用使其可以支持各種主流類型的圖片。

            History 歷史

            • 1.0 - Initial release.
            • 1.1 - A bug when drawing the control without a loaded image was corrected.
            • 1.2 - A bug when drawing the control was corrected.

              Loading an image from a resource is disabled due to problems recognizing it correctly as an image.

            License

            This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

            About the Author

            TEiseler

            Tester / Quality Assurance

            Germany Germany

            Member
             

            本文轉自:http://blog.csdn.net/cashey1991/article/details/7516996
            posted on 2013-07-22 18:09 王海光 閱讀(2217) 評論(0)  編輯 收藏 引用 所屬分類: MFC
            久久精品国产色蜜蜜麻豆| 欧美久久综合九色综合| 久久精品国产精品亚洲毛片| 国产精品久久久久影院色| 久久精品成人免费看| 久久久久亚洲AV成人网人人网站 | 99久久精品费精品国产 | 伊人久久大香线蕉精品| 亚洲精品97久久中文字幕无码| 久久久久人妻一区二区三区vr| 精品熟女少妇aⅴ免费久久| 99久久精品免费看国产一区二区三区| 91麻豆精品国产91久久久久久| 久久中文字幕人妻丝袜| 成人a毛片久久免费播放| 久久99精品久久久久子伦| 人妻无码精品久久亚瑟影视| 青青青国产精品国产精品久久久久| 亚洲精品美女久久久久99小说| 99久久婷婷国产综合精品草原| 婷婷五月深深久久精品| 久久午夜夜伦鲁鲁片免费无码影视| 久久综合综合久久狠狠狠97色88| 色偷偷久久一区二区三区| 欧美久久亚洲精品| 无码乱码观看精品久久| 久久se精品一区精品二区国产| 国产精品久久久久国产A级| 亚洲va久久久噜噜噜久久天堂| 久久久久久国产精品无码下载 | 亚洲狠狠婷婷综合久久蜜芽| 精品国产乱码久久久久软件| 久久精品国产99久久丝袜| 久久99精品免费一区二区| 欧美亚洲国产精品久久蜜芽| 久久精品视频免费| 91麻精品国产91久久久久| 久久久久久A亚洲欧洲AV冫| 久久久WWW成人免费精品| 婷婷久久综合九色综合九七| 久久久久久久波多野结衣高潮|