在CStatic静态文本框中,显示位图,控制位图大小

来源:互联网 发布:有道云协作下载 mac 编辑:程序博客网 时间:2024/05/17 06:30

 

 

    假设文本框控件变量为 m_Static,为此文本框添加位图有两种方式:

     一是:文本框随位图大小而改变   一是:位图尺寸与文本框尺寸相同,这两种方式都是通过修改Dlg::OnInitDialog()函数来实现的

 

 

     方式一:静态文本框大小随位图大小而改变

 

     步骤:

 

     在工程中添加位图资源:IDB_BITMAP

 

    首先创建位图对象

 

    CBitmap bitmap;

 

     其次装载位图

 

    bitmap.LoadBitmap(IDB_BITMAP);

 

    然后修改静态文本框类型

 

    m_Static.ModifyStyle(NULL,SS_BITMAP,SWP_NOSIZE);

 

    最后,为静态文本框设置位图

 

     m_Static.SetBitmap((HBITMAP)bitmap.Detach());

 

 

     

 

              

   

        使用这种方法无法控制位图大小,尝试多多种修改方法,均无法完成,只好用下面的方法,直接从文件读取指定大小的位图

 

 

       方式二:图尺寸与文本框尺寸相同

 

        

         步骤:

 

       一):首先获取静态文本框大小

 

                  CRect rect;

                  m_Static.GetWindowRect(&rect);

 

        二):使用LoadImage从文件读取指定大小位图

 

                 HBITMAP hBmp= (HBITMAP)::LoadImage(NULL,_T("F://1.bmp"),IMAGE_BITMAP,rect.Width(),rect.Height(),LR_LOADFROMFILE);

 

        三):修改文本框类型及向文本框加载位图

 

     

        m_Staic.ModifyStyle(NULL,SS_BITMAP);
        m_Staic.SetBitmap(hBmp);

                   

 

  

 

 

 

参考资料:

 

 

http://blog.sina.com.cn/s/blog_5cec38f30100bml0.html

 

http://dev.csdn.net/author/starlee/7573b9f8c9aa4cbea17258e4f3637d30.html

 

http://www.cnblogs.com/pfa2008/archive/2010/01/25/1655947.html

 

http://blog.csdn.net/Antoinette/archive/2010/07/12/5729708.aspx