MFC view窗口透明设置

基于MFC单文档程序,设置2个工具按钮,一个使画图背景为默认模式,另一个使view窗口透明直接在桌面作图。。。默认启动时只显示工具栏

我的做法是开始设置 view Precreatewindow cs

cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW |CS_VREDRAW);// view背景透明 只显示工具栏。这个功能Ok。

onbutton1: 加载一个类似默认背景白色的图片。。这个功能也ok。

Onbutton2: 要怎么去实现透明,实现桌面画图呢。??

运行后要在button1 button2切换时窗口也切换。。

各位大侠指导下啊,,我是新手。。。万分感激!!!

1个回答

试一下MFC屏幕标记之透明窗体(一)
//点击按钮实现窗口透明函数
void CScreenMarkerDlg::OnButtonTransparent()
{
HINSTANCE hInst = GetModuleHandle("User32.dll");
if (hInst)
{
//获取模块里的函数
BOOL (WINAPI SetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD)=
(BOOL (WINAPI
) (HWND,COLORREF,BYTE,DWORD))GetProcAddress(hInst,"SetLayeredWindowAttributes");
//函数指针正确获取
if(SetLayeredWindowAttributes)
{
//让窗口具透明的特性
::SetWindowLong(m_hWnd,GWL_EXSTYLE, GetWindowLong(m_hWnd,GWL_EXSTYLE)|WS_EX_LAYERED);

//设置窗口透明。第4参数为1时,第二个参数是被透明的颜色
SetLayeredWindowAttributes(m_hWnd,GetSysColor(COLOR_3DFACE),0,0x1);
}
FreeLibrary(hInst); //释放调模块句柄
}
}


sunnyli3166
sunnyli3166 我用etWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); HINSTANCE hins=LoadLibrary("User32.dll"); if(hins) { typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); MYFUNC fun =NULL; //眔SetLayeredWindowAttributeㄧ?? fun=(MYFUNC)GetProcAddress(hins,"SetLayeredWindowAttributes"); if(fun) fun(this->GetSafeHwnd(),0,128,2);//材???ぃ璶眔び0碞ぃЧ硓 FreeLibrary(hins); }这样写,之后效果跟我开始的一样,就是点了button1 后,点Button1实现不了透明效果啊
接近 5 年之前 回复
sunnyli3166
sunnyli3166 回复
接近 5 年之前 回复
sunnyli3166
sunnyli3166 谢谢你的回复啊 ,感激,但是加进去报错啊。。是BOOL 哪里,,error C2143: syntax error : missing ')' before '__stdcall'
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MFC设置窗口透明
SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(RGB(1,1,1), 0, LWA_COLORKEY);如果VC SDK版本过低,则使用:    typedef BOOL (WINAPI*LAYE...
MFC设置窗口透明方法
void CTestDlg::ToggleTransparency(HWND hWnd)  {   ::SetWindowLong(   hWnd,   GWL_EXSTYLE,   GetWindowLong(hWnd,GWL_EXSTYLE)^WS_EX_LAYERED);   // When bAlpha is 0, the window is completely transpare...
窗口设置透明程序窗口透明设置
设置每个窗口的透明度
mfc界面美化设置窗口透明以及设置控件透明
在onintdialog里添加如下代码: //设置窗口透明风格 DWORD dwExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE); if ((dwExStyle&WS_EX_LAYERED)!=WS_EX_LAYERED) { ::SetWindowLong(m_hWnd, GWL_EXSTYLE, dwExStyle^WS_EX_L...
MFC 窗口特效,窗口透明
MFC 也可以有很漂亮的界面!本例实现位图作为窗口背景图,同时有逐渐进入效果,透明效果。
MFC窗口透明
通过拉动滚动条可以改变窗口的透明度.VS2005
MFC 对话框(窗口)透明
程序的实现步骤基本就是这样,当然也有其他方法。希望大家能积极开拓,展示更多方法。 SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE)^WS_EX_LAYERED); #ifdef _UNICODE HINSTANCE hInst = LoadLib
mfc 窗口透明的问题~~
现有一个mfc程序 里面有个flash的ocx控件~~~怎么把背景等全部透明 只留下那个播放的flash~~~rn本人初学,希望各位高手详细指点~~~多多感谢~~~~
MFC设置窗体透明
MFC设置窗体透明
窗口透明设置
窗口透明设置 可以让窗口变成透明
Qt设置窗口透明
一、设置Flags和Attribute的方式,子控件不受影响 setWindowFlags(Qt::FramelessWindowHint);//windows下要加 setAttribute(Qt::WA_TranslucentBackground,true); 二、通过设置窗口透明度,子控件也受影响 setWindowOpacity(0.0); 三、设置子控件透明 QGraphics...
设置窗口透明小工具
将近10年来一直自己用的,可以把桌面某个窗口设置为透明或置顶。今天决定共享出来。
PB设置窗口透明
将可窗口设置为透明,本人已经测试通过将可窗口设置为透明,本人已经测试通过
设置view背景为透明
view setBackgroundColor(0) Set the background color. It's white by default. Pass zero to make the view transparent.
mfc 用CreateEx时如何创建一个透明的view窗口
如题,想在mfc单文档中创建一个新的view窗口 ,实现透明画布。rnrnrn newview= new XXXView()rnrnCREATE EX中该如何设置newview透明啊???急急!
代码收录-MFC 窗口透明
void CStockControlDlg::OnBnClickedButtonpricearea() { // TODO: 在此添加控件通知处理程序代码 price_area_flag = 1; ShowWindow(SW_SHOWMAXIMIZED);  /*    method1 //加入WS_EX_LAYERED扩展属性,以下用于对话框透明显示   BYTE byte
View透明
在MainActivity有一个LinearLayout,在这个LinearLayout中通过addView添加2个View(View大小与父大小相同),但2个View的内容都要能看到。rn目前设置View背景透明无效,每次只能看到第一个被加进去的View,后加的被挡住了,就算addView时指定index也不行。rnrn如何能让2个View都看到?
如何设置窗口的透明区域
如何设置窗口的透明区域
Swing窗口设置透明窗体
1、AWTUtilities 透明窗体 jFrame.setUndecorated(true); AWTUtilities.setWindowOpaque(jFrame, false); 半透明窗体 jFrame.setUndecorated(true); AWTUtilities.setWindowOpacity(jFrame, 0.5f); 2、jan.jar包, 透明窗体 ...
将窗口设置为透明
将窗口设置为透明将窗口设置为透明将窗口设置为透明
SetLayeredWindowAttributes设置窗口透明色
原意是想把控件图案周围的某一种颜色过滤掉,开始用了SetLayeredWindowAttributes,连窗口的背景都没了,能看到后面的窗口。怎样才能只过滤控件的颜色,窗口的底图不变
在98下如何设置窗口透明
在win2K下,设置窗口透明可以用SetLayeredWindowAttributes.rn在WIN98下,用什么方法?rn用以下办法有问题:rnPrivate Sub Form_Load()rn form1.AutoRedraw = Truern hBitmap = CreateCompatibleBitmap(form1.hdc, 0, 0)rn SelectObject form1.hdc, hBitmaprn form1.RefreshrnEND SUBrnrnPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)rn Label1(0).FontUnderline = Truern' Label1.RefreshrnEnd Subrnrn问题:label1不出现下划线!rn有什么办法可以解决这个问题??rn
MFC 单文档view透明贴图问题~
CDC imgdc,maskdc;rn CDC memdc;rn CBitmap membmp;rn membmp.CreateCompatibleBitmap(&dc,500,500);rn memdc.CreateCompatibleDC(&dc);rn memdc.SelectObject(membmp);rn memdc.FillSolidRect(0,0,500,500,RGB(255,0,0));rn imgdc.CreateCompatibleDC(&dc);rn maskdc.CreateCompatibleDC(&dc);rn CBitmap bitmap;rn CBitmap sbitmap;rn sbitmap.CreateBitmap(25,25,1,1,NULL);rn bitmap.LoadBitmap(IDB_BITMAP1);//该图背景色为黑色rn imgdc.SetBkColor(RGB(0,0,0));rn imgdc.SelectObject(&bitmap);rn maskdc.SelectObject(&sbitmap);rn maskdc.BitBlt(0,0,25,25,&imgdc,0,0,SRCCOPY);rn memdc.BitBlt(0,0,25,25,&imgdc,0,0,SRCINVERT);rn memdc.BitBlt(0,0,25,25,&maskdc,0,0,SRCAND);rn memdc.BitBlt(0,0,25,25,&imgdc,0,0,SRCINVERT);rn dc.BitBlt(0,0,500,500,&memdc,0,0,SRCCOPY);rn如题以上代码放在onpaint里没效果~~~
窗口置前透明设置
窗口 置前 透明 设置,方便用户将需要前置的窗体置顶,方便拷贝、查找等操作
C# WPF设置窗口透明
给窗体设置如下属性:WindowStyle="None" Background="#00FFFFFF" AllowsTransparency="True" Background前两位的颜色值是表示透明度的,此时颜色值为ARBG。 AllowsTransparency="True",开启窗口的工作区支持透明。详见https://msdn.microsoft.com/zh-cn/library
窗口透明 vc窗口透明
窗口透明 vc窗口透明
mfc实现窗口扩展、透明、背景渐变等
mfc实现窗口扩展、透明、背景渐变等。 我是菜鸟,写出来给我们这样的菜鸟学习一下。希望以后大家多多交流!
在MFC中如何将窗口的背景设为透明
各位大虾门,请问在MFC中如何将窗口的背景设为透明,请尽量写得详细些,包括源代码和说明,谢谢!!rn---------------一个弱弱的菜鸟
MFC窗口透明显示,并能画线
MFC窗口透明显示,并能拖动鼠标画线,VC源程序
控件不透明,窗口透明,MFC,任务栏,APPBAR
控件不透明 窗口透明 MFC APPBAR,使用VS做的。
MFC实现窗口透明,并显示一张透明PNG图片
参考了大佬的文章,记录一下过程,帮助记忆。 实现了窗口背景透明,button、edit控件不透明 可以看到窗口变成透明的了,并且载入了一张透明的png图片 代码如下: 在头文件中加入:CImage img BOOL CMFC301透明窗体Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单...
透明的窗口
透明 窗口 MVC VC C++ 自动 这是一个比较精简的代码。挺 好 用 的!
窗口透明
问问啊,vb怎么才能让窗口透明啊!!!rn在C#中只需要设置一个属性就行了.rnVB怎么办啊,谢谢了~~~
窗口透明???
怎样用“滑块”控件设置窗口的透明度? 往左透明度增加、往右透明度减小???rn我是初学者,请各位大虾多少指点,多谢了!
MFC下弹出设置窗口demo
在MFC界面下按钮弹出设置窗
MFC 如何设置窗口的大小
获取窗口的大小是以下的代码rnrnCRect rect;rnGetClientRect(&rect);rnrn我该如何去设置窗口的大小?
MFC CBrush设置窗口背景色
开发笔记: BOOL CPanelWnd::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 //return CDialog::OnEraseBkgnd(pDC); // 设置背景色为黑色 // 方法一 // CBrush newBrush; // newBrush.CreateSolidBrush(RGB(
mfc 标签控件怎么设置透明?
[code=c]rnrnHBRUSH CFive_Chess_01Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) rn{rn if(pWnd->GetDlgCtrlID()==IDC_LEVEL)rn rn pDC->SetBkMode(TRANSPARENT);rn CFont *font=new CFont();rn font->CreatePointFont(115,"华文行楷",NULL);rn pDC->SelectObject(font);rn rn return hbr;rn}rnrn[/code]rn[img=https://img-bbs.csdn.net/upload/201312/09/1386569762_89582.gif][/img]
MFC EDIT编辑框 透明设置问题
如题,本人在用mfc写小程序后,尝试界面美化。给背景加了一个图片,然后给static的控件设置透明了,但是编辑框控件(edit control)无法透明,求帮忙rnrn其中static控件透明方法如下:rnHBRUSH CServerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)rn rn HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); rn if (pWnd->GetDlgCtrlID()==IDC_BADPRODUCT) rn //控件ID rn pDC->SetTextColor(RGB(255,0,0)); rn //设置颜色 rn //return hbr;rn rn if(nCtlColor == CTLCOLOR_STATIC)rn pDC->SetBkMode(TRANSPARENT);rn //hbr=(HBRUSH)(m_brush.GetSafeHandle());rn return (HBRUSH)::GetStockObject(NULL_BRUSH);rn rn return hbr;rn
MFC 按钮设置透明失败啦
HBRUSH CPictureMatchDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) rn rn HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); rnrn if(pWnd->GetDlgCtrlID()==IDC_BUTTON_START)rn rn pDC->SetTextColor(RGB(255,255,255)); rn pDC->SetBkMode(TRANSPARENT);rn return hbr; rn rn return hbr;rn rn我想把开始按钮设置成透明的,为什么不成功呢?rn整体上是我先给整个对话框设置好背景颜色,想把按钮设置成透明的,按钮的框架和背景一个颜色,按钮就只显示文字,好看一点,但为什么不对呢?
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池