Direct3D использует мировую систему координат, а GetWindowRect
получает экранную координату. В этом проблема.
Нарисуйте линию другим методом, например, Graphics
class:
Graphics g;
g = this.CreateGraphics();
Pen myPen = new Pen(Color.Red);
myPen.Width = 1;
g.DrawLine(myPen, point1x, point1y, point2x, point2y);
Кроме того, независимо от проблемы, строка кода в вашей ссылке:
SetWindowLong(this.Handle, GWL_EXSTYLE,(IntPtr)(GetWindowLong(this.Handle, GWL_EXSTYLE) ^ WS_EX_LAYERED ^ WS_EX_TRANSPARENT));
если вам нужны дополнения к стилю, вы должны:
SetWindowLong(this.Handle, GWL_EXSTYLE,(IntPtr)(GetWindowLong(this.Handle, GWL_EXSTYLE) | WS_EX_LAYERED | WS_EX_TRANSPARENT));