MFC中,怎样在一个特定的控件里画图

新建了一个基于对话框或基于CFormView的应用程序,

拖入了一个长方形的Picture类型控件,控件的ID为IDC_PIC1,type为Frame,(Type还有Rectange、BitMap等类型)

Sunken、Border为选中状态,

现在想在该控件中画图,

实现方法为,在OnDraw函数中加入以下代码:

CRect rect;

CWnd *pWin = GetDlgItem(IDC_PIC1);//获取该控件的指针,就可以对该控件直接操作了
pWin->GetClientRect(rect);//把控件的长宽、坐标等信息保存在rect里

int width=rect.Width();//可以获取宽和高
int height=rect.Height();

CString str;
str.Format("高度为:%d,宽度为:%d",height,width);

        AfxMessageBox(str,MB_YESNO|MB_ICONSTOP,0);


CDC *pDc = pWin->GetDC();//获取该控件的画布

        //有了画布,下面可以自由的画图了,想怎么画就怎么话,

pDc->Rectangle(rect);
CBrush myBrush;
myBrush.CreateSolidBrush(RGB(192,250,233));
pDc->FillRect(rect,&myBrush);



其实,实现起来很简单,关键语句就是加粗体的语句

即,要获取某个区域的指针,然后获取画布


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值