预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一个自适应大小的位图控件 对话框编辑器中的控件工具条中的图片控制主要是在一个对话框中快速 地显示一个图象,它是很有用的。但是它只能显示图片的原始尺寸。如果你 想显示一幅位图,它有可能和其他控制一起重新排列,问题就出来了。如果 你改变了对话框的字体,则每个控制的尺寸将发生变化,但是显示位图的图 片控制却没有。同样,当系统字体发生变化是也会出现类似问题。 为了解决此问题,我写了一个CStatic的派生类,按照CStatic控制的大 小显示位图。当字体尺寸改变时,CStatic的窗口尺寸亦随之发生变化,位 图将自动伸缩来适应新的大小。这样就允许显示的图象比原始尺寸小或大了。 使用此类很容易,将CBitmapPicture类加入到你的项目,然后为你的对话 框建立一个CStatic对象,并且将该成员的类型与CBitmapPicture关联起来, 接着在你的OnInitDialog函数里调用CBitmapPicture::SetBitmap()设置将要 用到的位图即可。 BOOLSetBitmap(UINTnIDResource);//LoadsbitmapfromresourceID BOOLSetBitmap(LPCTSTRlpszResourceName);//Loadsbitmapfromresourcename BOOLSetBitmap(HBITMAPhBitmap);//Notrecommended,asreloadscan'tbedone 源程序: #if!defined(AFX_BITMAPPICTURE_H__A4BE2021_689E_11D1_ABBA_00A0243D1382__INCLUDED_) #defineAFX_BITMAPPICTURE_H__A4BE2021_689E_11D1_ABBA_00A0243D1382__INCLUDED_ #if_MSC_VER>=1000 #pragmaonce #endif//_MSC_VER>=1000 //BitmapPicture.h:headerfile // //Copyright(c)ChrisMaunder(Chris.Maunder@cbr.clw.csiro.au) //Written1December,1997 ///////////////////////////////////////////////////////////////////////////// //CBitmapPicturewindow classCBitmapPicture:publicCStatic { //Construction public: CBitmapPicture(); //Operations public: BOOLSetBitmap(HBITMAPhBitmap);//Notrecommended BOOLSetBitmap(UINTnIDResource); BOOLSetBitmap(LPCTSTRlpszResourceName); BOOLReloadBitmap(); //Overrides //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CBitmapPicture) protected: virtualvoidPreSubclassWindow(); virtualvoidDrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct); //}}AFX_VIRTUAL //Implementation public: virtual~CBitmapPicture(); //Attributes protected: HBITMAPm_hBitmap; BITMAPm_bmInfo; private: intm_nResourceID; CStringm_strResourceName; //Generatedmessagemapfunctions protected: //{{AFX_MSG(CBitmapPicture) afx_msgBOOLOnEraseBkgnd(CDC*pDC); afx_msgvoidOnSysColorChange(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} //MicrosoftDeveloperStudiowillinser