我想做一个对话框界面,将该对话框分成四个部分,每个部分上各有一个实现自对话框上的图形可以伸缩的按钮!
问题是:
如何实现通过单击按钮,实现图像的放大至整个界面?
然后再单击按钮,放大的图像又缩小至原来的尺寸?请求各位大侠的帮忙,不胜感激,!
本人基础很差,希望各位大侠能把源代码附上!
不胜感激!
问题是:
如何实现通过单击按钮,实现图像的放大至整个界面?
然后再单击按钮,放大的图像又缩小至原来的尺寸?请求各位大侠的帮忙,不胜感激,!
本人基础很差,希望各位大侠能把源代码附上!
不胜感激!
解决方案 »
- 编译错误,求大虾解答
- 几年没来这个地方了,很怀恋在这里的日子................
- CListBox显示全部单个CString对象
- 弱问:dll中可不可以设置模态对话框?
- 求助:如何控制网卡的工作模式。急急~~~~~~
- 谈谈String,CString,TCHAR,char之间区别和联系
- 694的心片组可以支持CIII吗??
- 如何利用CFile类从文本文件中逐行读取数据,多谢帮助!这可是我得全部家当了(27分)
- 一个巨变态的问题————高手请进
- 怎样在IE上加一个按钮啊
- Win32的客服区内建立子窗口,子窗口无法挂菜单吗? //代码如下
- 基类是CScrollView的多文档能否切分窗口
{
if(pMemDC==NULL)//bFirst)
{
//bFirst=FALSE;
pMemDC=new CDC;
pMemDC->CreateCompatibleDC(pDC);
}
CRect rc;
GetClientRect(&rc);
if(pOldBmp!=NULL)
pMemDC->SelectObject(pOldBmp);
if(hBmp!=NULL)DeleteObject(hBmp);
hBmp=CreateDIBitmap(pDC->GetSafeHdc(),
(BITMAPINFOHEADER*)m_pImgBmi,CBM_INIT,
m_pImgDib,m_pImgBmi,DIB_RGB_COLORS);
if(hBmp==NULL)return;
CBitmap* pBmp=CBitmap::FromHandle(hBmp);
pOldBmp=pMemDC->SelectObject(pBmp);
pBmp->GetBitmap(&bm);
if(hBmp==NULL) return;
float wid,hei;
wid=(float)(rc.right-rc.left);//bm.bmWidth;//*2;
hei=(float)(rc.bottom-rc.top);//bm.bmHeight;//*2;
int x,y;
float hrate,wrate,rate;//保持原始图像的比例
hrate=(float)hei/(float)bm.bmHeight;
wrate=(float)wid/(float)bm.bmWidth;
if(hrate<1.0&&wrate<1.0)
{
rate=(hrate<wrate)?hrate:wrate;
}
else if(hrate>1.0&&wrate>1.0)
{
rate=(hrate<wrate)?hrate:wrate;
}
else if(hrate>1.0&&wrate<1.0)
{
rate=wrate;
}
else
{
rate=hrate;
}
x=(int)abs((wid-bm.bmWidth*rate)/2);
y=(int)abs((hei-bm.bmHeight*rate)/2);
pDC->SetStretchBltMode(HALFTONE);
pDC->StretchBlt(x,y,wid-2*x,hei-2*y,pMemDC,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}