怎样才能实现透明窗口背景?
能通过擦除窗口背景来实现吗?
若通过修改窗口形状来实现,怎么才能根据窗口中的文字来确定窗口形状,
而不是用图片来修改窗口的形状?
能通过擦除窗口背景来实现吗?
若通过修改窗口形状来实现,怎么才能根据窗口中的文字来确定窗口形状,
而不是用图片来修改窗口的形状?
解决方案 »
- 图像位置识别功能:针对要求,通过图像处理算法实现焊盘上两根漆包线的位置识别。十字中心为通过处理后的漆包线位置,可同时实现两个位置的识别,给出图像坐标。
- 新手问题:怎么样控制MFC项目和Win32项目中对话框风格
- 如何获得控件的位置及大小
- 高手请进,在线等:数据库ACESS,要用到sum,group by 等查询,总是报莫名其妙的错,救命啊
- 关于PlaySound()的一个问题。
- UDP消息问题
- 如何设置文档的尺寸和打印时每一页的尺寸?在线等候
- 怎样把资源中的可执行文件读出,并保存在磁盘上?
- 那些人是如何吧自己的程序放到其他程序中的?
- 请各位深入剖析字符数组赋值的问题!!!
- 请帮我看看我的程序是什么问题?
- 高分加急!!!怎样用c++调用photoshop打开硬盘上的图片!!
用Region设定窗口区域也可以,不过你得先把文字画到位图上,然后根据位图来裁剪
有没有其他方法?
你要什么形状只要你定义一个HRGN变设成你要的形状就行了。
至于HRGN怎么操作,看MSDN或到网上找!
{
CDC memDC;
CBitmap &cBitmap=m_bmpDraw;
CBitmap* pOldMemBmp = NULL;
COLORREF col,colMask;
CRect cRect;
int x, y;
CRgn wndRgn, rgnTemp;
GetWindowRect(&cRect);
CPoint ptOrg=cRect.TopLeft();
BITMAP bmInfo;
cBitmap.GetObject(sizeof(bmInfo),&bmInfo);
CRect rcNewWnd=CRect(ptOrg,CSize(bmInfo.bmWidth,bmInfo.bmHeight));
memDC.CreateCompatibleDC(pDC);
pOldMemBmp = memDC.SelectObject(&cBitmap);
colMask=memDC.GetPixel(0,0);
wndRgn.CreateRectRgn(0, 0, rcNewWnd.Width(), rcNewWnd.Height());
for(x=0; x<=rcNewWnd.Width(); x++)
{
for(y=0; y<=rcNewWnd.Height(); y++)
{
col = memDC.GetPixel(x, y);
if(col == colMask)
{
rgnTemp.CreateRectRgn(x, y, x+1, y+1);
wndRgn.CombineRgn(&wndRgn, &rgnTemp, RGN_XOR);
rgnTemp.DeleteObject();
}
}
}
memDC.SelectObject(pOldMemBmp);
SetWindowRgn((HRGN)wndRgn, TRUE);
}colMask 为关键色。