MFC 对话框 背景图片 以及消除 字体重影 字体重叠
- 格式:docx
- 大小:105.45 KB
- 文档页数:4
函数原型:BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename );参数说明:nHeight :字体高度. 三中情况 1、>0:字体的高度值(设备坐标);2、=0:字体采用缺省值. 3、<0:此值的绝对值为高度.nWidth :字体宽度.nEscapement :文本行的倾斜度.nOrientation :字符基线的倾斜度.nWeight :字体的粗细.如下:.FW_DONTCARE.FW_THIN.FW_EXTRALIGHT.....bItalic :字体是否为斜体bUnderline :字体是否带下划线cStrikeOut :字体是否带删除线nCharSet :字体的字符集.ANSI_CHARSET.DEFAULT_CHARSET.SYMBOL_CHARSET.....nOutPrecision :字符的输出精度nClipPrecision :字符裁剪的精度nQuality :字符的输出质量nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族)lpszFacename :字体名称[程序实现]假设你已有了名为My的对话框工程.并有一个ID=IDC_EDIT1的Edit控件. class CMyDlg : public CDialog{public:CFont *m_Font;//最好用指针,我用对象调用好像不起作用,不清楚原因!m_Font = new CFont;//结束时记得要delete m_Font;........};BOOL CTMyDlg::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization here//CFont m_Font;m_Font->CreateFont(-11,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,O UT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"Arial ");CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDIT1);m_Edit->SetFont(m_Font,FALSE);return TRUE; // return TRUE unless you set the focus to a control}改变Edit字体颜色!OnCtlColor是一个响应界面上文字字体、文本框背景颜色的消息事件,可以在这里面改变字体颜色、文本框背景颜色。
在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColo r);参数nCtlColor用于指定控件的类型,可以是:.CTLCOLOR_BTN按钮控件.CTLCOLOR_DLG对话框.CTLCOLOR_EDIT编辑框.CTLCOLOR_LISTBOX列表控件.CTLCOLOR_MSGBOX消息控件.CTLCOLOR_SCROLLBAR滚动条控件.CTLCOLOR_STATIC静态控件[程序实现]假设已有了名为My的对话框工程.你有了一个STATIC的控件,ID为IDC_STATIC1.HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: Change any attributes of the DC hereif (nCtlColor==CTLCOLOR_STATIC){pDC-> SetTextColor(RGB(255,0,0)); //字体颜色pDC-> SetBkColor(RGB(0, 0, 255)); //字体背景色}// TODO: Return a different brush if the default is not desiredreturn hbr;}如果要指定某个特定控件可以这样写:ID为IDC_STATIC1if (pWnd-> GetDlgCtrlID()==IDC_STATIC1){pDC-> SetTextColor(RGB(255,0,0)); //设置字体颜色pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明// TODO: Return a different brush if the default is not desiredreturn (HBRUSH)::GetStockObject(BLACK_BRUSH); // 设置背景色}elsereturn hbr;【注】BLACK_BRUSH:黑色WHITE_BRUSH:白色GRAY_BRUSH:灰色NULL_BRUSH:透明HOLLOW_BRUSH:透明BOOL CreatePointFont(int nPointSize,LPCTSTR lpszFaceName,CDC*pDC=NULL);参数:nPointSize请求的的大小,取其1/10为其字体大小。
Static控件背景透明时文字覆盖问题的解决方案Static控件背景透明时文字覆盖问题的解决方案我泡论坛的时间并不长,但印象中已经有好多次在VC区看到类似这样的问题,而且经常议之未果:请问static控件设置透明后,再更改文字时会与之前的文字覆盖,怎么解决用pDC->SetBkMode(TRANSPARENT);设置透明后,要改变控件的文字就会发生文字重叠,如果不使用透明就不会,请问在透明状态下改变文字如何不发生重叠?起初不以为意,闲暇时自己试了一下,发现:文本确实有重叠。
如下图(为了更好的说明问题,我特意设置了背景和前景色):初步探究其原因,猜想应该是static控件的背景没有得到及时刷新。
那就好办了,解决办法:强制刷新。
方法1:GetDlgItem(IDC_STATIC)->UpdateWindow();无效...方法2:GetDlgItem(IDC_STATIC)-> RedrawWindow();无效.......方法3:GetDlgItem(IDC_STATIC)-> Invalidate ();无效.........方法4:还不行?来点小技巧SetDlgItemT ext(IDC_STATIC, " ");//多用几个空格,把原先的文本”冲”掉SetDlgItemT ext(IDC_STATIC, "TEST");郁闷了…….难道这么个小问题要用高级的方法搞?这个问题困扰了我好几天,终于在一次上WC时突然顿悟:static 的背景已经是透明的了,那么残留的文本应该是画在static的父窗口上的。
顿悟之后就是感叹:自己真笨啊。
办法有了:在给static设置新的文本之后(不是之前!)刷新父窗口。
void CTestStaticDlg::OnTimer(UINT nIDEvent){CString strTime;CTime time = CTime::GetCurrentTime();strTime = time.Format("%y年%m月%d日 %H:%M:%S");GetDlgItem(IDC_STATIC)->SetWindowText(strTime);GetDlgItem(IDC_STATIC)->GetParent()->RedrawWindow(); //就这两句话而已,呵呵CDialog::OnTimer(nIDEvent);}编译运行,K.O.。
word设置背景图片重叠融合的方法
word中经常需要使用到设置背景图片重叠融合的技巧使图片重叠显示,背景图片重叠融合具体该如何进行设置呢?接下来是店铺为大家带来的word设置背景图片重叠融合的方法,供大家参考。
word设置背景图片重叠融合的方法:
设置图片重叠融合步骤1:打开一个WORD文档,点击“插入”--图片。
设置图片重叠融合步骤2:之后,在电脑中找到不同的两个图片,点击“插入”。
设置图片重叠融合步骤3:插入图片后,在需要置于底层的图片上右键--文字环绕--浮于文字下方。
在另一张图片上右键,设置为:文字环绕--浮于文字上方。
设置图片重叠融合步骤4:这时,完成了两个图片的叠加效果,如图。
设置图片重叠融合步骤5:然后,双击上层图片,点击工具栏左侧的“重新着色”--设置透明色。
设置图片重叠融合步骤6:这时,鼠标指针会变成一个带箭头的笔。
我们用它在上层图片上点击,会发现图片的背景变淡了,如图。
设置图片重叠融合步骤7:自己根据需要,使用几次“设置透明色”后,图片就与底部的图层融合得很好了。
有时候在编辑Word文档时,按照文档排版的设计,对其中的文字设置了字体和字号,没有设置以前,文字在Word中显示是正常的,但是,设置了字体字号以后,文字在文档就却重叠在一起了,这是怎么回事呢?
解决方法:
1、可能是Word中字体间距的问题,选中重叠在一起的文字,然后【右键】【字体】,打开字体对话框,选择【高级】选项卡,设置自已的缩放为100%,间距为标准。
2、如果设置一切正常,你不妨将字体换成另一种字体试试,有时Word打开时显示的全是乱码,换种字体它就好了;还有另一种情况就是低版打开高版制作文档,比如用2003打开2007做的文档时。
3、也有可能是文字与文本框叠加,我们可以画个文本框,利用TAB键试试有无文本框的存在,因为全选对文本框的编辑是无效的。
MFC中改变对话框背景的几个消息函数OnEraseBkgnd、OnPaint、OnCtlColor的调用顺序设置对话框背景颜色及背景图片可在OnCtlColor(),OnEraseBkgnd(),OnPaint()里设置,对话框初始化完毕,显示时调用OnSize()->OnEraseBkgnd(),->OnPaint()->OnCtlColor(), 若想改变对话框大小,比如全屏显示ShowWindow(SW_SHOWMAXIMIZED);UpdateWindow();其中ShowWindow会调用OnSize()->OnEraseBkgnd(),UpdateWindow();调用OnPaint()->OnCtlColor(),若对话框中没有设置消息响应OnEraseBkgnd(),,则系统默认消息响应OnEraseBkgnd()会调用OnCtlColor()设置对话框背景(即替代OnEraseBkgnd())对话框的背景设置可在OnCtlColor()中进行,因为OnCtlColor()一般会被多次调用,所以要想设置的CFont,CBrush等应在OnInitDialog中初始化,若要在OnCtlColor()中设置,在设置前先调用Detach就可以了,如下示例HBRUSH CDb3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){if(pWnd->GetDlgCtrlID()==IDC_STATIC5){m_font.CreatePointFont(300,"宋体");pDC->SelectObject(&m_font);m_font.Detach();pDC->SetBkMode(TRANSPARENT);return (HBRUSH)::GetStockObject(NULL_BRUSH);}}但是如果在OnCtlColor()在设置背景图片,则图片不会随对话框大小按比例缩放所以可调用StretchBlt()函数设置,如下示例:void CDb3Dlg::OnPaint(){CClientDC cdc(this); CDC comdc;comdc.CreateCompatibleDC(&cdc);CBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP2);comdc.SelectObject(&bitmap);CRect rect;GetClientRect(rect);BITMAP bit;bitmap.GetBitmap(&bit);cdc.StretchBlt(0,0,rect.Width(),rect.Height(),&comdc,0,0,bit.bmWidth,bit.bmHeight,SRCCOPY);}//全屏显示对话框背景图片(限bmp格式)用了两年的VC,其实对OnPaint的工作原理一直都是一知半解。
问题笔记1,MFC取消折叠窗口显示的方法(5篇)第一篇:问题笔记1,MFC取消折叠窗口显示的方法1.Mfc窗口下拉菜单折叠问题,取消下拉方法:You don't want the “intellegent menus” feature, some menu items are hidden, and you have to click to show the whole menu?To disable this feature, go to CMainFrame::OnCreate.You will see some code like this:// enable menu personalization(most-recently used commands)// TODO: define your own basic commands, ensuring that each pulldown menu has at least one basic command.CList lstBasicCommands;lstBasicCommands.AddTail(ID_FILE_NEW);lstBasicCommands.AddTail(ID_FILE_OPEN);...lstBasicCommands.AddTail(ID_SORTING_GROUPBYTYPE);CMFCToolBar::SetBasicCommands(lstBasicCommands);Remove it.第二篇:剪纸折叠方法喜欢剪纸的朋友都知道,剪纸前我们要先折叠,再画上自己喜欢的纹样,然后再剪出漂亮的作品,所以剪纸之前的折叠是不可缺少的步骤,今天向大家介绍四折剪纸的两种折叠方法。
剪纸折叠方法:第一种折法把正方形的纸向上对边折,如图所示。
再向右对边折,如图所示。
然后右下角向左上角对折,如图所示。
第二种折法把正方形的纸,对角折,如图所示。
解决Word中文本框与图片重叠的问题在使用Microsoft Word进行文档编辑时,我们经常会遇到文本框与图片重叠的问题。
这不仅会影响文档的美观度,还可能导致内容的混乱和不易阅读。
为了解决这个问题,我们可以采取一些简单的方法。
首先,我们可以调整文本框的位置和大小。
在Word中,我们可以通过拖拽文本框的边框来改变其大小,也可以通过拖拽文本框的顶端或底部来改变其位置。
当文本框与图片重叠时,我们可以尝试将文本框向下或向上移动一些距离,以使其与图片分开。
如果文本框的大小超过了需要的范围,我们可以通过拖拽边框来缩小文本框的大小,以避免与图片重叠。
其次,我们可以调整图片的位置和文字环绕方式。
在Word中,我们可以选择将图片设置为“浮动”,以便在文本中移动图片的位置。
通过右键点击图片,选择“格式图片”,然后在“布局”选项卡中选择“浮动”,我们可以将图片设置为浮动状态。
在浮动状态下,我们可以将图片拖拽到文档中的任意位置,以避免与文本框重叠。
另外,我们还可以调整文本框和图片的层次顺序。
在Word中,我们可以通过右键点击文本框或图片,选择“层次顺序”来调整它们的前后关系。
将文本框或图片设置为较高的层次顺序,可以使其显示在其他对象的上方,从而避免重叠。
通过调整层次顺序,我们可以灵活地控制文本框和图片的显示效果。
此外,我们还可以使用Word提供的“线条和箭头”工具来分隔文本框和图片。
在Word中,我们可以在“插入”选项卡中找到“形状”工具,然后选择“线条和箭头”选项。
通过绘制一条直线或箭头,我们可以在文本框和图片之间创建一个分隔线,以区分它们的边界。
这样一来,即使文本框和图片有一定的重叠,也可以通过分隔线来清晰地区分它们。
最后,我们还可以考虑调整文本框和图片的布局方式。
在Word中,我们可以选择将文本框和图片放置在不同的页面,或者使用分栏功能将它们分开显示。
通过调整文本框和图片的布局方式,我们可以有效地避免它们之间的重叠问题。
VC MFC菜单栏(CMenu)控件 (2011-07-02 12:49)分类:C++菜单栏在对话框窗口里显示菜单栏像工具栏一样,菜单栏在按件面板里没有对应的选项,但有一个菜单控件类CMenu,所以如果想要在对话框里显示菜单栏,就得像工具栏那样,到ResourceView选项卡里新建一个菜单栏资源,步骤跟新建工具栏资源一样,只是资源类型是:Menu,菜单资源设计如下图:如果想改菜单项文本内容的话,方法是右击要更改的菜单项,选择属性,接着会弹出这样一个对话框:上面那个ID项就是该菜单项对应的ID号了,添加菜单项单击消息处理函数时会用到,而标明项里的内容就是菜单项要显示的文本了。
这里还得注意一下“弹出”这个选项,勾上这个选项表明对应的菜单项还有下级菜单,如:上面“转到”这个菜单项具有弹出属性,有下级菜单设计好了菜单资源,接着我们就来在对话框显示菜单栏吧,方法是进入对话框编辑区,右击对话框界面,选择属性,然后在菜单项里选择菜单资源ID号,回车,编译,运行,效果如下图:当然还有第二种在对话框显示菜单的方法:调用SetMenu函数把菜单跟对话框关联起来,函数第一个参数是窗口句柄,第二个参数是菜单句柄。
在OnInitDialog函数里添加如下语句:CMenu menu;//定义一个菜单类变量menu.LoadMenu(IDR_MENU1);//装载IDR_MENU1菜单资源SetMenu(&menu);//和当前窗口关联起来menu.Detach();//分离如果要处理菜单项单击消息的话,方法跟处理工具栏项单击消息一样,进入类向导,找到对应的菜单项ID,为它添加COMMAND消息处理函数。
设置菜单左边显示位图和背景位图CMenu类里要了解的函数SetMenuItemBitmaps//设置菜单项左边的位图函数定义:BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked );nPostion指明具体要设置的菜单项,可以是菜单项索引,菜单项ID,具体由nFlags参数指明,为MF_BYPOSITION,则以菜单项索引指明,为MF_BYCOMMAND则第一个参数nPosition是菜单项ID号。
mfc,vc 禁止标题栏重绘,改变标题栏,双缓冲标题栏贴图需要在标题栏上贴图,更换标题栏背景的时候,不想要标题栏显示颜色,尤其拉动改变窗体大小的时候,所以需要禁止标题栏重绘的方法。
只需要处理WM_NCPAINT消息就好了,消息处理函数OnNcPaint中去掉CDialog::OnNcPaint(),从此世界安静了标题栏更换颜色,标题栏贴图,窗体其他位置贴图也可以用这里的贴图函数//*******************************************************************//voidCMyDlg::DrawTitleBar(CDC *pDC){CDC memDC;CBitmap bmp;CRectrect, rtTitle;CPoint point;GetClientRect(rect);//获取标题栏大小rtTitle.left = GetSystemMetrics(SM_CXFRAME);rtTitle.top = GetSystemMetrics(SM_CYFRAME);rtTitle.right = rect.right - rect.left - GetSystemMetrics(SM_CXFRAME);rtTitle.bottom = rtTitle.top + GetSystemMetrics(SM_CYSIZE);point.x = rect.right +GetSystemMetrics(SM_CXFRAME);point.y = 30;memDC.CreateCompatibleDC(NULL);bmp.CreateCompatibleBitmap(pDC,point.x,point.y);CBitmap *pOldBit=memDC.SelectObject(&bmp);//背景颜色memDC.FillSolidRect(0,0,point.x,point.y,RGB(125,0,125));////贴图//CBitmap pic;//pic.LoadBitmap(IDB_BITMAP1);//ShowBitmap(&memDC,0,0, rtTitle.right, 30, pic);pDC->BitBlt(0,0,point.x,point.y,&memDC,0,0,SRCCOPY);pOldBit->DeleteObject();memDC.DeleteDC();bmp.DeleteObject();}LRESULT CMyDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam){//return CDialog::DefWindowProc(message, wParam, lParam);LRESULT lrst=CDialog::DefWindowProc(message, wParam, lParam);if(message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message= =WM_NCACTIVATE ||message == WM_NOTIFY){CDC* pWinDC = GetWindowDC();if (pWinDC)DrawTitleBar(pWinDC);ReleaseDC(pWinDC);}return lrst;}voidCMyDlg::OnNcPaint(){//CDialog::OnNcPaint();}BOOL CMyDlg::OnEraseBkgnd(CDC* pDC){return TRUE;}voidCMyDlg::ShowBitmap(CDC *pDC, int x, int y, intnW, intnH, CBitmap&m_bitmap) {CDC memDc, mdc;memDc.CreateCompatibleDC(NULL);mdc.CreateCompatibleDC(NULL);CBitmapmemBitmap;memBitmap.CreateCompatibleBitmap(pDC,nW,nH);CBitmap *OldBmp = memDc.SelectObject(&m_bitmap);mdc.SelectObject(&m_bitmap);memDc.BitBlt(x,y,nW,nH,&mdc,0,0,SRCCOPY);BITMAP bm;m_bitmap.GetBitmap(&bm );//贴图//pDC->BitBlt(x, y,// x + bm.bmWidth,y + bm.bmHeight,// &MemDc,// 0, 0,// SRCCOPY);//拉伸pDC->StretchBlt(x,y, nW, nH ,&memDc,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);memDc.SelectObject(OldBmp);memDc.DeleteDC();}。
很多人都想改变对话框的背景图,其实很简单,只需要一个函数就可以了,不过还是有问题的,下面讲述。
只需要响应WM_ERASEBKGND消息,然后重载OnEraseBkgnd(CDC*pDC)这个函数就可以,首先我们要添加消息响应,由于该消息不能用MFC ClassWizard添加,因为ClassWizard 没有该消息添加的选项,我们需要手动添加,只需要在消息响应MAP添加一下ON_WM_ERASEBKGND(),如下所示:
BEGIN_MESSAGE_MAP(CSerialTestDlg, CDialog)
//{{AFX_MSG_MAP(CSerialTestDlg)
ON_WM_ERASEBKGND()//添加重绘背景消息响应
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
我们然后进行消息响应,添加消息响应函数,然后在对话框类的声明文件添加该函数的声明virtual BOOL OnEraseBkgnd(CDC*pDC);在实现文件中进行该函数的书写,如:
BOOL CSerialTestDlg::OnEraseBkgnd(CDC*pDC)
{
CBitmap m_bitmap;
m_bitmap.LoadBitmap(IDB_DLGBK);//加载背景图片,选择你对应的图片ID
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&m_bitmap);
CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect);//选择客户区域
BITMAP bmp;
m_bitmap.GetBitmap(&bmp);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmW idth,bmp.bmHeight,SRCCOPY);//绘制BMP背景图
m_bitmap.DeleteObject();
return TRUE;
}
但是这样做一般就可以,细心的人会发现字体有重叠,比如说静态文本框和EDIT控件,如果选择只读模式,作为输出,这时EDIT的背景是BMP背景图片,但是字体重叠,如下图,我这样就行消除。
用MFC ClassWizard添加WM_CTLCOLOR消息,如下图,然后编写该函数
HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch(nCtlColor)
{
case CTLCOLOR_STATIC: //对所有静态文本控件的设置
{
pDC->SetBkMode(TRANSPARENT);//设置背景为透明
pDC->SetTextColor(RGB(0,0,0)); //设置字体颜色
return HBRUSH(GetStockObject(HOLLOW_BRUSH)); // 必须
}
case CTLCOLOR_DLG: //对所有静态文本控件的设置
{
pDC->SetBkMode(TRANSPARENT);
return hbr; //返回画刷句柄
}
default:
return CDialog::OnCtlColor(pDC,pWnd, nCtlColor);
}
return hbr;
}
这里解决静态文本框背景,然后是关于字体重叠问题,只需要对EDIT控件进行隐藏,显示一下就可以了
((CEdit*)(GetDlgItem(IDC_EDIT_writetime)))->ShowWindow(SW_HIDE);
((CEdit*)(GetDlgItem(IDC_EDIT_writetime)))->SetWindowText(m_peoplelist.GetItemT ext(i,7));
((CEdit*)(GetDlgItem(IDC_EDIT_writetime)))->ShowWindow(SW_SHOW);
1、首先,为了下面使用擦除背景的方便,先增加OnEraseBkgnd函数(WM_ERASEBKGND),但好多新手都不知道对话框在那里找增加这个函数,来跟我来
快捷键Ctrl+W打开ClassWizard对话框(菜单->view->ClassWizard):选择Class Info,找到左下角的Message filter,下拉列表至最底部,选中Window,OK保存
2、我们再Ctrl+W 打开ClassWizard对话框,MessageMaps->Class Name:选择当前工程对话框->Object IDs:选择当前对话框->Messages:下拉找吧,WM_ERASEBKGND有了吧,双击或者Add Function,添加到下面的Member functions后,再双击就可以编辑此函数代码了
3、当然除了以上的方法之外,如果对代码结构基本了解的话,还可以自己手动增加:
a、工程的头文件中增加擦出背景函数定义
afx_msg BOOL OnEraseBkgnd(CDC *pDC);
b、增加消息响应
BEGIN_MESSAGE_MAP(C******Dlg, CDialog) // C******Dlg是你自己对话框的工程类……
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
c、工程源文件cpp中增加此函数的操作部分
BOOLCDisplayBmpBackGroundDlg::OnEraseBkgnd(CDC *pDC)
{
//在这里你想增加那些对图片背景处理的东西就随便填吧 return TRUE;
}
m_btn1.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);
//这里是两副位图,鼠标按下和弹起,
// 也可以只加一个ID资源;
m_btn1.SubclassDlgItem(IDC_BUTTON1,this);
m_btn1.SizeToContent();//适应位图大小。