vc 中要如何修改dc大小

CDC* pDC = GetDC();
m_memDC.CreateCompatibleDC(pDC);
HBITMAP hBmp = CreateCompatibleBitmap(pDC->GetSafeHdc(), rc.Width(), rc.Height());
m_memDC.SelectObject(hBmp);
m_memDC.FillSolidRect(0, 0, rc.Width(), rc.Height(), RGB(0,255,0));
ReleaseDC(pDC);
DeleteObject(hBmp);
当前的做法是这样的...但是我要在OnSize中响应怎么办啊...难道要每次OnSize都创建位图.然后选择位图.接着删除位图吗?.......感觉这样太水了...有没有什么其他的方法之内的...比如: m_memDC.SetSize(100, 200) 之内的函数啊..?
非常感谢.

GDI的画法貌似只能是改变位图的大小,句柄是没办法设置大小的;
你可以采用GDI+的画法,可以达到你的目的,它可以将图片画到制定大小追问

谢谢..
但是目前只限于GDI.......
这个困扰了我很久很久了..超不爽.所以很想解决掉

追答

BitBlt函数,还有个类似的Transbelt?记不大清楚了,msdn上应该有索引可以查,你看看能不能实现你的要求

温馨提示:内容为网友见解,仅供参考
无其他回答

...想改变菜单栏的宽度和菜单栏字的大小,需要怎么写代码
标准菜单CMenu是没有DC和字体设置的,因此需要自建菜单类。CodeGuru有一个标准示例,你可以搜索“Owner Drawn Menu With Free Color & Font”找到该文章。代码示例如下:

WIN32 API VC++如何放大整个窗口中的内容
先设置DC中的映射模式为MM_ISOTROPIC SetMapMode( hdc, MM_ISOTROPIC ) ;然后设置SetWindowExtentEx( hdc, sizeA )SetViewportExtentEx( hdc, sizeB )显示原图后 你再调用 SetViewportExtentEx( hdc, sizeB )把sizeB参数改成原来的%110.Tip: size里有x,y2个参数.OK,你再用原来的显示函数输出一次,...

求助:VC如何实现图片的放大和缩小?
用StretchBlt函数即可实现,参考代码如下:void CImgWnd::OnPaint(){ CPaintDC dc(this); \/\/ device context for painting \/\/获得窗口大小 CRect r; GetClientRect(&r); \/\/填充背景 HBRUSH brush = (HBRUSH)::GetStockObject(GRAY_BRUSH); ::FillRect(dc.m_hDC,&r,brush...

vc 中如何获得窗口dc
CClientDC dc(this);\/\/设置当前窗户区为DC的绘图范围 dc.CreateCommpatibleBitmap();更加好理解点,也更加常用,实用.

VC做的WIN32一个窗口程序中, TextOut函数可以输出一些内容,我想让这 ...
CFont font;font.CreateFontIndirect(const LOGFONT* lpLogFont);创建你要的字体,在lpLogFont里面指定你要的字体和字体大小即可。CClientDC dc(this);dc.SelectObject(font);把字体选进DC。dc.SetTextAlign((UINT nFlags);设置文字对齐方式。dc.SetTextColor((COLORREF crColor);设置文字颜色。调用dc....

VC中如何获得活动窗口的大小信息
你用原生的api BOOL GetClientRect( HWND hWnd,LPRECT lpRect); 不用MFC的试试看呢?用 GetForegroundWindow 获取前端窗口句柄。

VC 画图问题, 如何将画出的图形比例同窗口缩放
画图的时候,先用GetClientRect获得矩形区域,再根据这个大小计算应该绘制的图片大小,最后用StretchBlt将图绘制到DC上

VC++中怎么实现禁止用户改变窗口的大小啊?
return FALSE;\/\/ TODO: Modify the Window class or styles here by modifying \/\/ the CREATESTRUCT cs cs.style&=~WS_MAXIMIZEBOX; \/\/禁用最大化按钮 cs.style&=~WS_THICKFRAME; \/\/禁止调整窗口大小 cs.cx=800; \/\/固定窗口宽度 cs.cy=600; \/\/固定窗口高度(包括菜单栏等)return...

vc 怎么设置一个编辑框的字体的大小或者颜色
调用字体对话框,来改变编辑框的字体和颜色1.添加一个编辑框 ID为 IDC_EDIT12.为编辑框添加变量 CEdit m_edit3.添加一个按钮触发该事件。void CTeTDlg::OnButton1() \/\/添加一个按钮 { \/\/ TODO: Add your control notification handler code here \/\/获得控件的当前字体 LOGFONT ...

VC++编译错误'dc' : redefinition要怎么解决
‘dc’ 被重定义的意思,就是告诉你其他地方已经定义了这个‘dc’解决方法:在每个头文件加上 #pragma once 或者 ifndef _XX_H define _XX_H \/\/ code endif

相似回答