求流畅的C#移动代码,我的来回移动了几次桌面就出了"影子"如何去掉呢?
调用API
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
在空间的_MouseDown中加入如下代码:
如:
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}
------解决方案--------------------楼主,你试试重写WndProc方法试试。以下是代码
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0084)
{
m.Result = (IntPtr)2;
}
else
{
base.WndProc(ref m);
}
}
如果这种方式还是不行的话,个人认为原因有3
其一:你窗体或者窗体上的控件的代码有问题
其二:你电脑配置有问题
其三:接其二原因,是否因为你电脑配置差,为提高电脑的性能而把一些效果给关闭了?
本人Win7系统,计算机-【右键】属性-【选择 高级 选项卡】高级-【性能】设置