1.如果不使用窗口样式WS_POPUP或剪切窗口,怎样能创建出一个没有非客户区的窗口,也就是没有标题栏,没有边框。(30)
2.怎样实现一个类似于很多网络游戏中聊天栏那样的半透明的窗体(Win98下也是半透明的。)(70)问题2可以再加分,:)5000分以内。
2.怎样实现一个类似于很多网络游戏中聊天栏那样的半透明的窗体(Win98下也是半透明的。)(70)问题2可以再加分,:)5000分以内。
解决方案 »
- 关于hook程序 WH_KEYBOARD_LL无用
- 关于debub没问题而 release 就出错的问题
- 在VC中用fopen("","a")写txt文件时,操作几次就出现错误。
- 关于socket中的select函数
- ********VC新建一个对话框类型的工程,不小心把右边的放控件的浮动面板关闭了,怎么才能让那个面板在出来啊,星星请回答
- 夜风微凉兄,请进!
- 请问如何能让我的Cricheditctrl最多输入100个字符???谢谢!!!!!
- 现在已知某机器IP地址,怎么样知道这台机器是否开机?(用程序实现)
- vc中如何调用应用程序
- 关于收邮件的问题???请个位高手赐教.
- C程序用VC转换成dll的编译错误
- 关于CListenSocket的小问题!满烦大家了!嘿嘿!
ModifyStyle
ModifyStyleEx
WS_TITLE WS_BORDER
2.??
我用CreateWindow创建的一个Style = 0 的窗口都还带标题栏和边框。
然后我把创建好的窗口用SetWindowLong设置样式为0,都还有标题栏在,-_- !
的窗口只能在前两种里做一个选择,而 Overlapped 类型的必然有标题栏,所以你的
要求不能满足,除非自己去计算非客户区的大小。
另外,Style 为 0 时,系统会默认为是 Overlapped 风格,所以没有用。
就肯定是 WS_OVERLAPPED 的,因为 WS_OVERLAPPED 的值是 0,也即是窗口类型的默认设置。
没有个窗口在创建的时候,都有一个应用程序兼容版本以及窗口创建器版本的信
息,以保证某些老的开发工具生成的应用程序可以在新的系统上以原来的方式工
作。而你使用新的开发工具反而达不到。底层里微软为无数的软件做了特别的努
力,例如 VB、FoxPro、Word、Excel 等。但我这也是推测,仅供参考。
你看是我新开个帖子把分给你,还是麻烦你稍微等下到我结这个帖子的时候把分给你?
:),请问一下,你提供的那个链接里面的那个东东有源码下载么?我现在在公司,网速限制,开那个连接开了N分钟,再点里面的链接就等到现在还没给我露个脸出来.
虽然你可以在绘制的时候取一下你窗口下的内容,通过 Alpha 混合
再进行输出,但是首先去你的窗口下的内容这一点就不好实现,复制
屏幕不可以是因为你的窗口是可见的,你总不能先隐藏自己再复制吧?
有两个消息可能对你有用,WM_PRINT 和 WM_PRINTCLIENT,但是这两
个消息可能不按照微软的规范工作,尤其是很多界面库自己的实现。
再一个很麻烦的事情是,你下面的窗口内容如果有变化,你的窗口不
会得到任何通知,你怎么更新你的混合输出?不要指望挂钩拦截 WM_PAINT
消息,因为还有很多动画应用,例如播放器。建议你放弃。如果你的老
板要求你这样做,把我的建议给他看。
你给的网站上面说的是用WS_EX_LAYERED 来实现,但是WS_EX_LAYERED在Win98中不被支持的,而且WS_EX_LAYERED样式不能用于子窗体的。那个解决不了问题的,-_-~~
逻辑上窗口可以划分多少层,事实上显示设备毕竟还是一个平面的东西。你的输
出总是要由操作系统的干预才能工作。OS 在输出时总揽全局,进行必要的裁剪和
Alpha 混合(也即透明窗口的实现机制)。自己去做这些工作是不现实的。你所
说的游戏中的效果,有两种可能能够实现,1、全屏模式;2、窗口模式内层次完
全由自己掌控。其核心就是,应用程序不太可能把自己绘制的东西和系统控制的
东西在这一点上协调起来,要么全部由系统作,要么全部由自己作。我没有使用
98,所以不知道你说的下载工具的透明窗口在 98 上是什么表现,我认为不可能
像在 2000 以后的操作系统上一样工作。如果的确可以,麻烦告我一声,我去学
习一下,不过千万不要是用隔点输出的方式做的。我再一次忠告你:放弃这个念头
吧,我是个过来人。