一个GDI画文字的问题

.Net技术 码拜 4年前 (2016-09-16) 436次浏览
本人想做一个支持弹幕的视频播放器,用GDI来实时画出弹幕内容。可是本人尝试画出的弹幕好像是被视频播放器给挡住了,看不见,这个怎么处理,请高手指点一下,谢谢!
弹幕内容是”本人是画出来的文字!”

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace dmshipin
{
    public partial class Form1 : Form
    {
        int i = 1500;
        public Form1()
        {
            InitializeComponent();
            
        }
        private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.URL = @"d:\h1.mp4";
            //axWindowsMediaPlayer1.uiMode = "none";
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            System.Drawing.Size size = this.Size;
            System.Drawing.Point point = this.Location;
            int left = this.Left;
            int width = this.Width;
            if (i < 10)
            {
                i = width - 10;
            }
            else {
                i = i - 5;
            }
            label1.Location = new Point(i, 40);
            label1.BackColor = Color.Transparent;
            label2.Location = new Point(i+10, 80);
            label3.Location = new Point(i-5, 120);
            label4.Location = new Point(i+20, 160);
            ////画出的文字
            Graphics g = this.CreateGraphics();
            Font font = new Font("华为宋体", 20);
            //Point一样,只是值是浮点类型
            PointF point1 = new PointF(150, 150);
            g.DrawString("本人是画出来的文字!", font, Brushes.Coral, point1);
        }
    }
}
解决方案

10

你需要拖个别的控件,将parent设定为axWindowsMediaPlayer1,将背景色设定为transparent

30

g是this create的。所以drawString当然也是在窗体背景上啊
试试用播放器那个控件creategraphics

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一个GDI画文字的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)