fillsolidrect_cstring转lparam_fillsolidrect 透明(2)

电脑杂谈  发布时间:2017-03-10 14:21:04  来源:网络整理

{

if ( m_bcapture )

{

this->clienttoscreen(&point);//对话框坐标转屏幕坐标

cwnd* pwnd = getdlgitem(idc_static);

pwnd->screentoclient(&point);//再转控件坐标

crect oldrc(m_pt, m_pic); //控件中坐标

pwnd->clienttoscreen(&oldrc);// 转换为屏幕坐标

this->screentoclient(&oldrc);

//计算新位置

m_pt.x = point.x - m_off.cx;

m_pt.y = point.y - m_off.cy;

this->invalidaterect(oldrc, false);

}

cdialog::onmousemove(nflags, point);

}

void cmydlg::onlbuttonup(uint nflags, cpoint point)

{

releasecapture();

m_bcapture=false;

cdialog::onlbuttonup(nflags, point);

}

void cmydlg::onpaint()

{

//添加部分

else

{

cwnd* pwnd = getdlgitem(idc_static);

crect rc;

pwnd->getclientrect(&rc); //获得idc_static控件大小

//创建与idc_static控件大小相同的背景位图

cbitmap bitmap;

bitmap.createcompatiblebitmap(&dc, rc.width(), rc.height());

//创建 绘制背景的内存dc

cpaintdc dc(pwnd); //控件dc

cdc memdc; //绘制背景的内存dc

memdc.createcompatibledc(&dc);

memdc.selectobject(&bitmap); //将背景位图选入

memdc.fillsolidrect(0,0,rc.width(), rc.height(), rgb(255,255,255)); //填充背景色

memdc.drawedge(&rc, edge_bump, bf_rect); //四周有边框

//你可以这里用memdc绘制背景图案

//创建拖动图片的内存dc

cdc picdc;

picdc.createcompatibledc(&memdc);

picdc.selectobject(&m_bitmap);

memdc.bitblt(m_pt.x, m_pt.y, m_pic.cx, m_pic.cy, &picdc, 0, 0, srccopy); //bitblit到绘制背景的dc上

dc.bitblt(0, 0, rc.width(), rc.height(), &memdc, 0, 0, srccopy); //最后bitblt到控件dc上


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36845-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...