作者chrisQQ (ChrisLiu)
看板C_Sharp
标题[问题] directx overlay render 的问题
时间Mon Oct 31 23:57:42 2011
各位晚安,我参考网路上一篇文章,想在现有程式上加上 overlay 的功能
http://goo.gl/iRaDX 底下为原始网址
http://www.uc-forum.com/forum/net/62019-c-non-hooked-external-directx-overlay.html
照理来说,应该是在
device.BeginScene();
// 这中间我自己画出要 render 的东西
font.DrawText(null, "stringa", new Rectangle(0, 0, 500, 500),
DrawTextFormat.Left, Color.White);
device.EndScene();
但我如果在这边画出我想画的字,overlay 的部份就会变成黑色不透明盖掉原本程式
http://ppt.cc/UNCu
後来参考了另外一篇文章
http://goo.gl/3p6JJ
http://stackoverflow.com/questions/148275/how-do-i-draw-transparent-directx-content-in-a-transparent-window
在 onpaint 的 method 上面加上了
System.Drawing.Font fn = new System.Drawing.Font("新细明体", 50);
Graphics g = e.Graphics;
// black brush for Alpha transparency
SolidBrush blackBrush = new SolidBrush(Color.Black);
g.FillRectangle(blackBrush, 0, 0, Width, Height);
g.DrawString(DateTime.Now.ToShortTimeString(), fn, new
SolidBrush(Color.Red), new PointF(20, 20));
blackBrush.Dispose();
就可以正常运作了,但这样感觉又回到 form 里面 paint 的时候才做…
那我为什麽要用 directx @@?
图示:
http://ppt.cc/4_ov
而且第一篇那边作者有给 screenshot 看起来很正常,
不知道有没有人写过类似的程式能够帮我解答
我测试的 source code 位於
http://pastebin.com/wASJ5X7u 这边
--
是说我找到的文章都很旧,还是现在都改用 XNA 来写这种东西吗?
感谢回答@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.85.64.11
1F:推 knifehandz:你的用途不需要 DirectX 或 OpenGL 啊 xD 11/05 06:14
2F:→ knifehandz:GDI 就够用了 11/05 06:15
3F:→ chrisQQ:感谢回覆,不过因为之後想 render 其他东西,只是在测试 11/06 11:49
4F:→ chrisQQ:而已,所以随便设个字上去 XD 11/06 11:49