如何从任意角度旋转一个窗体?(50分)

  • 主题发起人 主题发起人 qf0421
  • 开始时间 开始时间
Q

qf0421

Unregistered / Unconfirmed
GUEST, unregistred user!
我看到好象可以用什么API:<br>setworldxform<br>不知道怎么用。
 
&nbsp;有SetWorldTransform, SetWindowExtEx, SetWindowOrgEx可以设置出边框<br>不规则的窗口。但未听说有setworldxform。<br>&nbsp; 真的想让窗口旋转,那可需要你自己动手做了。<br>&nbsp; 你见过什么程序有倾斜的窗口吗?<br>&nbsp;
 
写错了,是SetWorldTransform。<br>各位大虾,有礼了
 
<br>用GetDC(Handle: THandle);获得窗口HDC<br><br>BOOL GetWorldTransform(<br>&nbsp; HDC hdc, // 窗口HDC<br>&nbsp; LPXFORM lpXform // 封闭区域个交的坐标<br>);<br><br>
 
我就是不太明白这个函数怎么用:(。。。
 
看了看,98 下不能用,要纯 32 位平台,nt 才行,<br><br><br>SetWorldTransform, 前一个参数是你要转换的设备环境句柄,<br>如果是 form 的话,就是 Canvas.Handle,<br>后一个是一个 TXForm 结构,用来生成坐标映射,<br>也就是具体的转换方法,比如旋转等等,<br>看看帮助,写的很清楚。由于没有 nt ,没法测试。
 
98下怎样旋转呢?
 
若有如3Dmax那样的3D Form多好呀!?
 
用WindowsAPI可以实现。
 
可以试着用 region 来模拟一下。
 
region 不行,
 
用改变窗体视角原点的函数,具体可以查询WIN32 HELP。
 
该问题只能在NT下使用,我曾做过一个程序用于旋转图片,程序大致如下:<br>&nbsp; <br>&nbsp; SetGraphicsMode(dc,gm_advanced);<br>&nbsp; SetWorldTransform(...)<br>&nbsp; BitBlt(...)<br>以上函数用法可查帮助<br><br><br><br>
 
&nbsp;listen<br>
 
想大家学习!
 
附加功能 &nbsp; 将问题提前 &nbsp; &nbsp;
 
试试setwindowrgn
 
后退
顶部