社区
图形处理/算法
帖子详情
怎么样才能把图画在控件内,不画出界呢
diablon
2003-04-27 09:38:14
我在对话框上有一个frame控件,我想在这个控件上画,
CWnd * pWnd = GetDlgItem(IDC_FRAME_BK);
CDC * pDC = pWnd->GetDC();
但是,很容易就画到这个控件外面去了,怎么样才能
限制它只在控件范围内画呢
...全文
128
11
打赏
收藏
怎么样才能把图画在控件内,不画出界呢
我在对话框上有一个frame控件,我想在这个控件上画, CWnd * pWnd = GetDlgItem(IDC_FRAME_BK); CDC * pDC = pWnd->GetDC(); 但是,很容易就画到这个控件外面去了,怎么样才能 限制它只在控件范围内画呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ukyoking
2003-04-29
打赏
举报
回复
pWnd->GetClientRect(&rc);
sorry,sorry, 昨天说错了,不好意思
ukyoking
2003-04-28
打赏
举报
回复
CWnd * pWnd = GetDlgItem(IDC_FRAME_BK);
CDC * pDC = pWnd->GetDC();
CRect rc;
pWnd->GetWindowRect(&rc);
CRgn rgn;
rgn.CreateRectRgnIndirect(&rc);
pDC->SelectClipRgn(&rgn);
rgn.DeleteObject();
diablon
2003-04-28
打赏
举报
回复
我用的是pDC->MoveTo(0, 0);
pDC->LineTo(x, y);
这里的x和y是变化的,有时x或y就是负值,我希望把超过
控件外的不见,而不只是简单地不画这条线
diablon
2003-04-28
打赏
举报
回复
可我不是画图片,我是画线
body
2003-04-28
打赏
举报
回复
利用CRegion(HREGION)就行了吧?会自动剪切的。如果是粘贴图片的话。
yuga
2003-04-28
打赏
举报
回复
void CNewDlg::PaintFingerImg(CStatic *pFingerImg, BYTE *pImg,int nWidth,int nHeight)
{
CRect rcDIB,rcDest;
int DestW,DestH;
ASSERT(pImg);
CDC *pDC1=pFingerImg->GetDC();
CDC MemDC;
MemDC.CreateCompatibleDC(pDC1);
HBITMAP hBitmap1 = CreateDdb(pDC1->m_hDC, nWidth,
nHeight, pImg, 1);
ASSERT(hBitmap1);
CBitmap *pBmp1=CBitmap::FromHandle(hBitmap1);
CBitmap *pOldBmp=(CBitmap *)MemDC.SelectObject(pBmp1);
DeleteObject(hBitmap1);
rcDIB.left=0;
rcDIB.right=nWidth;
rcDIB.top=0;
rcDIB.bottom=nHeight;
rcDest.left=0;
rcDest.top=0;
CRect TstRect;
pFingerImg->GetClientRect(&TstRect);
DestW=TstRect.Width();
DestH=TstRect.Height();
float rate,rate1;
if(DestW>=nWidth&&DestH>=nHeight)
{
rcDest.right=nWidth-1;
rcDest.bottom=nHeight-1;
}
else if(DestW>=nWidth&&DestH<nHeight)
{
rate=DestH*1.0/nHeight;
rcDest.right=(int)(nWidth*rate-1);
rcDest.bottom=DestH-1;
}
else if(DestW<nWidth&&DestH>=nHeight)
{
rate=DestW*1.0/nWidth;
rcDest.right=DestW-1;
rcDest.bottom=int(nHeight*rate-1);
}
else
{
rate=DestW*1.0/nWidth;
rate1=DestH*1.0/nHeight;
if(rate>rate1)
rate=rate1;
rcDest.right=nWidth*rate-1;
rcDest.bottom=nHeight*rate-1;
}
pDC1->StretchBlt(1, 1, nWidth, nHeight,
&MemDC, 0, 0, nWidth, nHeight, SRCCOPY);
MemDC.SelectObject(pOldBmp);
pFingerImg->ReleaseDC(pDC1);
return;
}
diablon
2003-04-28
打赏
举报
回复
那个应该是GetClientRect,现在果然画出来了,多谢
ukyoking
2003-04-28
打赏
举报
回复
no problem,just do it!!!
diablon
2003-04-28
打赏
举报
回复
呵,别来气,我会去试的,主要是现在上网的地方不是我自己的地方,
除了上网的东西,其它什么都没装。所以我一次问清楚了,回去
仔细试。
ukyoking
2003-04-28
打赏
举报
回复
ft,难道你不会去试试
diablon
2003-04-28
打赏
举报
回复
是说这样设定了区域之后,就已经关联了?
MoreWindows界面编程第一篇-位图背景与位
图画
刷
在WM_CTLCOLORSTATIC消息处理中,我们可以通过改变画刷颜色或选择位
图画
刷来为
控件
设置位图背景。 对于自贴图(Owner-Drawn),开发者可以直接控制
控件
的绘图过程,实现更个性化的界面效果。在对话框或
控件
的WM_...
时序
图画
图工具-TimeGen3.2安装包
它们清晰地表示出消息传递、事件触发以及对象状态的变化,是理解系统行为的重要工具,尤其在设计和分析分布式系统、并发系统和实时系统时不可或缺。 TimeGen3.2是一款专为绘制时序图而设计的小巧实用的工具。它提供...
QT-在子
控件
上绘图的两种方式
Qt 在
控件
上面绘图 label,pushbutton。。。。。 1、构建一个新类来调用该
控件
的绘图函数,新类重写 paintEvent(QPaintEvent *) ▶构建: class DrawGraphLab : public QLabel { Q_OBJECT public: explicit ...
ppt画
图画
不下——调整ppt页面的大小
仅作为记录,大佬请跳过。 文章目录过程参考 过程 新建一个ppt——设计——幻灯片大小——自定义幻灯片大小——自定义,输入尺寸——确定——确保适合 参考 感谢大佬文章:传送门
matlab如何将两张
图画
在一起,如何在MATLAB里面将两个
图画
在一起
问题描述:如何在MATLAB里面将两个
图画
在一起data=[7478151373731111321179128017874104921271216472728628833617152383369272708229522293317677];T=data(:,1);D=data(:,2);K=data(:,3);[X,Y,Z]=griddata(T,D,K,...
图形处理/算法
19,469
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章