关于不规则形状窗口 第一个很好解决,确定位图后生成一个多边形,再设定窗口区域就行了好像是用 CreatePolygonRgn, SetWindowRgn 两个函数搞定第二个用 MDI 比较简单,否则要自己裁剪窗口,也可以但是很麻烦。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做不规则窗口的话可以用函数SetWindowRgn()函数,将一个构造好的区域赋给一个窗口,我这里有一个非常酷的播放器的界面,有源代码,想要就和我联系吧 创建位图不规则窗口很容易,我这也有现成的实现函数。要使子窗口不移出主窗口,我可以提供思路: 定义一个矩形(RECT),这个矩形位于子窗口中心区域,在Move事件中修改此矩形位置,并用RectInRgn判断其是否在主窗口区域,若超出则移动其回主窗口区域。也可简单的定义子窗口中心点,用PtInRgn判断。 在www.codeguru.com上有几个关于创建不规则窗体的例子,你可以参考一下,主要使用两个函数CreatePolygonRgn,SetWindowRgn 关于不规则窗口的实现,我有一个简单的例子,没有实现位图功能.mail me your address. 使用位图创建区域的源代码我有,已经放在我的网页上了http://rain.cnpick.com或者http://breath.cnpick.com函数名BmpToRegion想要就来吧,或者给我发EMail to breath知道原理,只是没时间做,也给我一份,谢谢了先 多谢各位指点,小弟这里谢了!子窗口并不是在有Move事件时才超出主窗口,而是一直超出主窗口,关于这个问题我已解决了.我把原先所有的子窗口做成popup窗口就可以了.但还有两个问题我没弄明白: 1. 当我用GetWindowRgn得到窗口的区域后,用CRgn::PtInRegion 判断某点是否在该区域中时,发现该点明明在区域外,可CRgn::PtInRegion 却返回TRUE,这是怎么回事?如何解决? 2. 我在某窗口中按着鼠标键移出该窗口,在该窗口外松开鼠标键,该窗口中的控件还是处于鼠标键按下时的状态,并且我发现当按着鼠标在窗口中移动时,不能捕获WM_MOUSEMOVE消息,这问题该如何解决? 多谢各位赐教! 大家说说怎么得分快呀 alpha混合的时候,如何把红色的部分化成黑色,另外怎么把字体变得更锐利 打开文件对话框,如果实现这样的过滤器:src files (*.src;*.asm) ADO访问SQL SERVER2000的问题 如何在界面上画图的问题? 急!!!!!!!!!!!在线等待 sdk使用activex控件的问题 mfc dll中如何使用webbrowser控件 SetLayeredWindowAttributes 怎么过滤两种颜色 msdn应怎样安装?? 如何写一个模板类? 窗口对象不能接收事件
要使子窗口不移出主窗口,我可以提供思路:
定义一个矩形(RECT),这个矩形位于子窗口中心区域,在Move事件中修改此矩形位置,并用RectInRgn判断其是否在主窗口区域,若超出则移动其回主窗口区域。
也可简单的定义子窗口中心点,用PtInRgn判断。
CreatePolygonRgn,SetWindowRgn
或者http://breath.cnpick.com
函数名BmpToRegion
想要就来吧,或者给我发EMail
知道原理,只是没时间做,也给我一份,谢谢了先
1. 当我用GetWindowRgn得到窗口的区域后,用CRgn::PtInRegion 判断某点是否在该区域中时,发现该点明明在区域外,可CRgn::PtInRegion 却返回TRUE,这是怎么回事?如何解决?
2. 我在某窗口中按着鼠标键移出该窗口,在该窗口外松开鼠标键,该窗口中的控件还是处于鼠标键按下时的状态,并且我发现当按着鼠标在窗口中移动时,不能捕获WM_MOUSEMOVE消息,这问题该如何解决?
多谢各位赐教!