作者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
推 knifehandz:你的用途不需要 DirectX 或 OpenGL 啊 xD 11/05 06:14
→ knifehandz:GDI 就夠用了 11/05 06:15
→ chrisQQ:感謝回覆,不過因為之後想 render 其他東西,只是在測試 11/06 11:49
→ chrisQQ:而已,所以隨便設個字上去 XD 11/06 11:49