教一个棘手问题!如何在视频窗口上显示控件!

tuoya220 2013-12-06 11:23:26
在MFC里面直接把视频显示到CStatic上或者是Dialog上,在视频上层需要放几个控件!

现在的问题是,只要有视频,上层的控件就会被遮住。就算把控件移动到最顶层,视频在不停的刷,界面看起来就会不停的闪!

不知道该咋整了!
...全文
571 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuoya220 2013-12-08
  • 打赏
  • 举报
回复
引用 22 楼 m617105 的回复:
[quote=引用 20 楼 tuoya220 的回复:] [quote=引用 14 楼 worldy 的回复:] [quote=引用 13 楼 tuoya220 的回复:] [quote=引用 12 楼 worldy 的回复:] [quote=引用 10 楼 tuoya220 的回复:] [quote=引用 9 楼 worldy 的回复:] [quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?[/quote] 那是肯定的,但首先要先证明方案可行---要确认视频输出的函数没有修改显示区域 [/quote] 创建裁剪区域好像没效果...[/quote] 干嘛非得使用static?使用CView或cwnd的派生类,不可以?[/quote] 直接用Dialog的句柄也是一样,输出到Dialog上也是覆盖。上层是四个CEdit,之前说错了。Dialog上是CStatic,CStatic上是四个CEdit[/quote] 直接从Cwnd派生一个吧,上周也搞过跟你差不多的功能的界面。 用CStatic就是会出现你说的状况,会显示一下然后就没有。 后来我改用CWnd自己派生一个来显示视频就好了。 至于为啥CStatic会出现那个情况还没空去搞明白。 如果你用CWnd也会出现覆盖的话,你就得改你的播放库了,就不是界面的事了。[/quote] 已经放弃这条路了,最新思路是做两个Dialog,父Dialog用来显示视频,子Dialog放控件!这样只需要做透明就行了,新问题是:activex里面没法透明!看来我要再开一个新帖了。这个贴先结了吧!
_船长_ 2013-12-07
  • 打赏
  • 举报
回复
界面闪(一方面因为你视频播放原因,不断绘制,而你没有使用双缓冲实现,另一方面因为上面的子窗口也会被刷新),这样吧,你在显示视频画面这个A控件的的OnPaint()函数里,创建一块内存DC,然后再把子控件的DC(注意使用CPaintDC)绘制到这块内存DC上,最后贴到A控件的设备DC上。我觉得应该可行!
浩南_哥 2013-12-07
  • 打赏
  • 举报
回复
引用 20 楼 tuoya220 的回复:
[quote=引用 14 楼 worldy 的回复:] [quote=引用 13 楼 tuoya220 的回复:] [quote=引用 12 楼 worldy 的回复:] [quote=引用 10 楼 tuoya220 的回复:] [quote=引用 9 楼 worldy 的回复:] [quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?[/quote] 那是肯定的,但首先要先证明方案可行---要确认视频输出的函数没有修改显示区域 [/quote] 创建裁剪区域好像没效果...[/quote] 干嘛非得使用static?使用CView或cwnd的派生类,不可以?[/quote] 直接用Dialog的句柄也是一样,输出到Dialog上也是覆盖。上层是四个CEdit,之前说错了。Dialog上是CStatic,CStatic上是四个CEdit[/quote] 直接从Cwnd派生一个吧,上周也搞过跟你差不多的功能的界面。 用CStatic就是会出现你说的状况,会显示一下然后就没有。 后来我改用CWnd自己派生一个来显示视频就好了。 至于为啥CStatic会出现那个情况还没空去搞明白。 如果你用CWnd也会出现覆盖的话,你就得改你的播放库了,就不是界面的事了。
sd__q 2013-12-06
  • 打赏
  • 举报
回复
你那几个控件是干嘛的?能不能把这几个控件放到一个子窗口中,在显示时覆盖在视频窗口的固定位置
worldy 2013-12-06
  • 打赏
  • 举报
回复
试一下,在用于显示视频的窗口上加上 WS_CLIPCHILDREN 风格 话说回来,干嘛非得在视频窗口上创建控件?
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 14 楼 worldy 的回复:
[quote=引用 13 楼 tuoya220 的回复:] [quote=引用 12 楼 worldy 的回复:] [quote=引用 10 楼 tuoya220 的回复:] [quote=引用 9 楼 worldy 的回复:] [quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?[/quote] 那是肯定的,但首先要先证明方案可行---要确认视频输出的函数没有修改显示区域 [/quote] 创建裁剪区域好像没效果...[/quote] 干嘛非得使用static?使用CView或cwnd的派生类,不可以?[/quote] 直接用Dialog的句柄也是一样,输出到Dialog上也是覆盖。上层是四个CEdit,之前说错了。Dialog上是CStatic,CStatic上是四个CEdit
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 18 楼 yuwujian 的回复:
同级窗口刷新问题设置WS_CLIPSIBLINGS属性, 父子关系刷新问题设置WS_CLIPCHILDREN属性, lz试试看设置WS_CLIPSIBLINGS属性会不会被视频覆盖
设置了WS_CLIPSIBLINGS,对视频没效果,已出视频就被遮挡住了
yuwujian 2013-12-06
  • 打赏
  • 举报
回复
同级窗口刷新问题设置WS_CLIPSIBLINGS属性,
父子关系刷新问题设置WS_CLIPCHILDREN属性,
lz试试看设置WS_CLIPSIBLINGS属性会不会被视频覆盖
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 15 楼 hdg3707 的回复:
到得视频窗口的句柄,然后把控件的父窗口设为视频窗口的句柄
视频是直接刷到CStatic 上去的,不能把其他的几个CStatic的父窗口设置为CStatic
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 8 楼 m617105 的回复:
每个控件单独放到一个CWnd里面,不要设置CWnd的WS_EX_LAYERED的属性。
这个方法也没用,视频一出来就会把整个CStatic给刷新。
hdg3707 2013-12-06
  • 打赏
  • 举报
回复
到得视频窗口的句柄,然后把控件的父窗口设为视频窗口的句柄
worldy 2013-12-06
  • 打赏
  • 举报
回复
引用 13 楼 tuoya220 的回复:
[quote=引用 12 楼 worldy 的回复:] [quote=引用 10 楼 tuoya220 的回复:] [quote=引用 9 楼 worldy 的回复:] [quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?[/quote] 那是肯定的,但首先要先证明方案可行---要确认视频输出的函数没有修改显示区域 [/quote] 创建裁剪区域好像没效果...[/quote] 干嘛非得使用static?使用CView或cwnd的派生类,不可以?
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 12 楼 worldy 的回复:
[quote=引用 10 楼 tuoya220 的回复:] [quote=引用 9 楼 worldy 的回复:] [quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?[/quote] 那是肯定的,但首先要先证明方案可行---要确认视频输出的函数没有修改显示区域 [/quote] 创建裁剪区域好像没效果...
worldy 2013-12-06
  • 打赏
  • 举报
回复
引用 10 楼 tuoya220 的回复:
[quote=引用 9 楼 worldy 的回复:] [quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?[/quote] 那是肯定的,但首先要先证明方案可行---要确认视频输出的函数没有修改显示区域
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 3 楼 liuzi_40 的回复:
WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
如果只是加载图片是OK的,视频的话还是不行,总是被刷新到最上面,其他几个CStatic还是被遮挡了!
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 9 楼 worldy 的回复:
[quote=引用 7 楼 tuoya220 的回复:] [quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试[/quote] 我如果加载图片的画这个方法是可以的,但是用视频显示的时候就没办法了,视频的这个CStatic始终被刷新到最上面!因为窗口上层的这四个CStatic是可以随意拖动的,那裁剪区域也要随时变动吗?
worldy 2013-12-06
  • 打赏
  • 举报
回复
引用 7 楼 tuoya220 的回复:
[quote=引用 3 楼 liuzi_40 的回复:] WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....[/quote] 那就创建一下裁剪区域,把你要显示的static的地方裁剪掉试试
浩南_哥 2013-12-06
  • 打赏
  • 举报
回复
每个控件单独放到一个CWnd里面,不要设置CWnd的WS_EX_LAYERED的属性。
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 3 楼 liuzi_40 的回复:
WS_CLIPCHILDREN 这样被遮挡住的地方就不会被重绘了 或者cRgn创建不规则区域 只刷新指定区域
问题是我在视频上面显示的那几个控件并不是子窗口....
tuoya220 2013-12-06
  • 打赏
  • 举报
回复
引用 2 楼 sd__q 的回复:
你那几个控件是干嘛的?能不能把这几个控件放到一个子窗口中,在显示时覆盖在视频窗口的固定位置
就是几个static,在视频的CStatic上面显示,可以拖动的
加载更多回复(3)
在IE5.5+中开始支持的Popup窗口有很多很特别的特性: Popup窗口可以超出浏览器窗口区域; 可以不用担心被下拉框、flash、Iframe等这些东西遮挡; 一个Popup窗口打开后,当在它的区域以外点击或者另一个Popup窗口被打开时都会自动关闭; Popup窗口是没有焦点的; 用户不能改变Popup窗口大小; Popup窗口中的内容是不能被选择的; ...... 因为这些特征,Popup窗口制作的菜单比起传统的div(层)实现的菜单有着得天独厚的优势,不仅效果会非常好,而且代码也会是非常少的,只是对于实现起来却有几个需要解决的棘手问题:多个Popup共存的问题、如何递归生成菜单、如何控制Popup的显示隐藏…… 要用Popup制作菜单一个最重要的问题就是要解决多个Popup共存的问题,Msdn上的描述是:“一个Popup窗口打开后,当另一个Popup窗口被打开时就会自动关闭”。我本来一直以为Popup窗口是不可以多个共存的,不过偶然从51js上知道:父Popup窗口可以创建子Popup窗口,子Popup窗口又可以创建子Popup窗口,这样就可以同时存在一个Popup窗口家族,当父Popup窗口关闭,所有的子孙窗口都会关闭。这点恰好可以运用在菜单中——父菜单关闭子菜单一起关闭,省去很多繁琐的判断。 最开始,我写了一个简单的两层的Popup右键菜单,为此专门写了一个根据级数生成Popup窗口家族的递归方法: var pops = new Array(); // 用来存储Popup窗口家族的数组 function CreatePopup(degree) { if (degree < 0) // 层数不能小于0 return null; if (pops[degree] != null) //如果已经存在则不需创建 return pops[degree]; if (degree == 0) pops[0] = window.createPopup(); //创建最顶层Popup窗口 else{ if (pops[degree - 1] == null) pops[degree - 1] = CreatePopup(degree - 1) //递归回溯一层一层开始创建 pops[degree] = pops[degree - 1].document.parentWindow.createPopup(); //从父Popup窗口创建子Popup窗口 } pops[degree].document.body.setAttribute("degree", degree); return pops[degree]; } CreatePopup(1); //创建一个2层的Popup家族 这个方法可以解决多个Popup共存的问题,只是如果要使用这个方法来实现无限级菜单代码恐怕就比较繁琐了。这个例子,只是为我验证了无限级Popup窗口共存的可能,并没有继续走下去,因为我有了更好的思路。 Xml真是好东西,在Web控件中,可以得到灵活的运用(在我的上篇随笔《xml+xsl+htc,web控件开发的理想组合》中,已经简单提到了xml+xsl+htc的理想组合),在这里也不例外,先用Xml来定义好菜单的数据menu.xml: 通过Xml,可以很方便直观的定义菜单数据。 菜单数据已经定义好了,现在问题就是如何来把这些xml数据变成Popup菜单?!在传统的用div(层)来实现的菜单,一般都是一次性将所有级菜单数据生成HTML,放在各个层中,然后动态在制定位置显示隐藏这些层来实现模拟菜单的效果,在这里当然也可以这么做。回想一下菜单的特征:每次显示一级菜单,如果该级菜单中某菜单项中有子菜单,当鼠标经过或者点击该菜单项时弹出下级子菜单,这是一个递归的过程。如果我们可以:每次显示一级xml的内容,如果该级xml中某节点有子节点,当鼠标经过该节点时读取下级xml的内容,这也是一个递归的过程,而且恰好和菜单的显示过程是一一对应的。 既然大胆假设了一把,那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理鼠标经过或点击菜单项时用到。下面是Menu.xsl用来生成子菜单的部分: 现在就是解决鼠标经过菜单项时,如果有子菜单则解析子菜单数据,并使用子Popup窗口显示子菜单数据,刚才我们存的数据岛这时候就可以派上用场了。在xsl中,需要用到一些客户端脚本来辅助完成了 // 创建当前窗体(可以是IE窗体也可以是Popup窗体)的Popup对象 // 这个Popup对象就是用来存储子菜单数据的 var oPopup = document.parentWindow.createPopup(); // 装载xsl var stylesheet = new ActiveXObject("Microsoft.XMLDOM"); stylesheet.async = false; stylesheet.load( "menu.xsl" ); // 鼠标经过菜单项 function ItemOver(obj) { // 隐藏已经打开的菜单项 if (preObj != null) { if (preObj == obj) return; oPopup.hide(); // 要清空原Popup中的数据——document.write()方法是接着原来的内容往里面写,所以如果不清空会出现重复数据 oPopup = document.parentWindow.createPopup(); // 恢复前一个菜单项的状态 ItemNormal(preObj); preObj = null; } obj.className='PopMenuItemOver'; if (obj.cells(2).children.length > 0) //有子菜单 { obj.cells(2).children(0).src = "images/ArrowRHighlight.gif"; // 获取子菜单xml数据 var subMenuData = obj.all.tags("xml")(0).XMLDocument; // 根据子菜单xml数据和当前xsl文档生成HTML var sHtml = subMenuData.transformNode(stylesheet); // 将解析出来的HTML全部输出到Popup中,在Popup中,又可以利用这些脚本再Popup…… oPopup.document.write(sHtml); // 计算popup内容的实际宽度高度 oPopup.show(0, 0, 1, 1, obj); var width = oPopup.document.body.scrollWidth; var height = oPopup.document.body.scrollHeight; oPopup.hide(); // 显示菜单 oPopup.show(obj.offsetWidth, 0, width, height, obj); preObj = obj; } } // 鼠标移出菜单项 function ItemOut(obj) { if (oPopup.isOpen && preObj == obj) // 如果子菜单被打开则跳过 return; ItemNormal(obj); } // 恢复到菜单项的默认状态 function ItemNormal(obj) { obj.className='PopMenuItem'; if (obj.cells(2).children.length > 0) { obj.cells(2).children(0).src = "images/ArrowR.gif"; } } 这样:使用menu.xsl解析一级xml的内容生成一级菜单,如果该级xml中某节点有子节点,当鼠标经过该节点时,创建当前窗口/Popup窗口的子Popup窗口,使用menu.xsl解析子节点中xml的内容并输出显示到子Popup中,递归,即可通过Popup显示所有子菜单。 作为一个菜单来讲,这个例子还有很多要完善的地方(当我再结合htc时它绝对是一个非常棒的菜单控件),但是这个例子已经完整地实现了一个xml结合xsl递归生成无限Popup菜单的例子,这个简洁的代码再次印证了xml+xsl+htc的理想组合。
ocenaudio支持VST(虚拟演播室技术)插件,使用户可以访问多种效果。像本机效果一样,VST效果可以使用实时预览来辅助配置。 应用诸如EQ,增益和滤波之类的效果是音频编辑的重要组成部分。但是,仅通过调整控件配置来获得期望的结果非常棘手:您必须收听处理后的音频。为了简化音频效果的配置,ocenaudio具有实时预览功能:您可以在调整控件时听到处理后的信号。 效果配置窗口还包括所选音频信号的微型视图。您可以以与在主界面上相同的方式在此微型视图上导航,选择感兴趣的部分并实时聆听效果效果。 ocenaudio适用于所有主要操作系统:Microsoft Windows,Mac OS X和Linux。为了从通用资源为每个平台生成本机应用程序,以实现出色的性能并与操作系统无缝集成。ocenaudio的所有版本都具有统一的功能集和相同的图形界面,因此您在一个平台上学习的技能可以在其他平台上使用。 为了协助ocenaudio开发,创建了一个强大的音频编辑,分析和操作工具集,称为Ocen Framework。ocenaudio也基于Qt框架,这是一个著名的跨平台开发库。 为了加快复杂音频文件的编辑速度,ocenaudio包括多项选择。借助这个出色的工具,您可以同时选择音频文件的不同部分,然后对其进行聆听,编辑或什至对其施加效果。 例如,如果您只想标准化受访者正在谈话的访谈摘录,则只需选择它们并应用效果即可。 使用ocenaudio,可以编辑的音频文件的长度或数量没有限制。使用高级内存管理系统,该应用程序可以使文件保持打开状态,而不会浪费计算机的任何内存。即使在几个小时的文件中,常见的编辑操作(例如复制,剪切或粘贴)也几乎立即发生。 尝试一下,您会感到惊讶! 除了提供令人难以置信的音频文件波形视图之外,ocenaudio还具有强大而完整的频谱图视图。在此视图中,您可以以最大的清晰度分析音频信号的频谱内容。 高级用户会惊讶地发现频谱图设置是实时应用的。当更改功能时,例如频段数量,窗口类型和大小以及显示的动态范围,将立即更新显示
ocenaudio支持VST(虚拟演播室技术)插件,使用户可以访问多种效果。像本机效果一样,VST效果可以使用实时预览来辅助配置。 应用诸如EQ,增益和滤波之类的效果是音频编辑的重要组成部分。但是,仅通过调整控件配置来获得期望的结果非常棘手:您必须收听处理后的音频。为了简化音频效果的配置,ocenaudio具有实时预览功能:您可以在调整控件时听到处理后的信号。 效果配置窗口还包括所选音频信号的微型视图。您可以像在主界面上一样在此微型视图上导航,选择您感兴趣的部分并实时收听效果效果。 ocenaudio适用于所有主要操作系统:Microsoft Windows,Mac OS X和Linux。为从通用来源为每个平台生成本机应用程序,以实现出色的性能并与操作系统无缝集成。ocenaudio的所有版本都具有统一的功能集和相同的图形界面,因此您在一个平台上学习的技能可以在其他平台上使用。 为了协助ocenaudio开发,创建了一个强大的音频编辑,分析和操作工具集,称为Ocen Framework。ocenaudio也基于Qt框架,这是一个著名的跨平台开发库。 为了加快复杂音频文件的编辑速度,ocenaudio包括多项选择。借助这个出色的工具,您可以同时选择音频文件的不同部分,然后聆听,编辑甚至对其施加效果。 例如,如果您只想标准化受访者正在谈话的采访摘录,则只需选择它们并应用效果即可。 使用ocenaudio,可以编辑的音频文件的长度或数量没有限制。使用高级内存管理系统,该应用程序可以使文件保持打开状态,而不会浪费计算机的任何内存。即使在几个小时的文件中,常见的编辑操作(例如复制,剪切或粘贴)也几乎立即发生。 尝试一下,您会感到惊讶! 除了提供令人难以置信的音频文件波形视图外,ocenaudio还具有强大而完整的频谱图视图。在此视图中,您可以以最大的清晰度分析音频信号的频谱内容。 高级用户会惊讶地发现频谱图设置是实时应用的。更改功能(例如频段数量,窗口类型和大小以及显示器的动态范围)时,将立即更新显示器。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧