摘要: 前言:本店绝不含地沟油顾客:“老板,你这油怎么这么亮呀,跟我平常吃的不一样,不会是地沟油吧?”回答:“你平常吃的是地沟油!”继续缅怀逝去的程序员生涯倒腾WinForm, 是这样的俺想做个方便的类来控制其他程序的窗口,具体就是操作句柄。这里以改变窗口的输入框(Text)举例,其他自己搞吧,就是调用WinAPI。实现过程:过程一:找到当前鼠标位置的句柄您的使用2个WinAPI(俺喜欢自己封装下来用):View Code [DllImport("user32.dll", EntryPoint = "GetCursorPos")] public static e阅读全文
posted @ 2011-07-29 20:17 newzhq 阅读(1579) 评论(10) 编辑

  前言:卖麻辣烫归来后实在太累,写代码来消遣,最近搞Winform,感觉标题栏太丑,就想拖拽窗体,自己写了个拖拽控件类,方便自己使用,没啥技术含量,就是想瞎写写,明天打印出来贴在店里,没事盯着,缅怀我逝去的程序员生涯。

public class DragControl
    {
        
private Control _drag = null;
        
private Control _move = null;
        
private Cursor _oldCursor = null;

        
private int initialX;
        
private int initialY;

        
private DragControl() { }
        
public DragControl(Control drag,Control move)
        {
            _drag 
= drag;
            _move 
= move;
        }
        
public DragControl(Control dragControl) : this(dragControl, dragControl) { }

        
public void CloseDrag()
        {
            _drag.Cursor 
= _oldCursor;
            _drag.MouseDown 
-= MoveTipDown;
        }

        
public void OpenDrag()
        {
            _oldCursor 
= _drag.Cursor;
            _drag.Cursor 
= Cursors.SizeAll;
            _drag.MouseDown 
+= MoveTipDown;
        }

        
private void MoveTipDown(object sender, MouseEventArgs e)
        {
            initialX 
= e.X;
            initialY 
= e.Y;
            _drag.MouseMove 
+= MoveTipMove;
            _drag.MouseUp 
+= MoveTipUp;
        }

        
private void MoveTipUp(object sender, MouseEventArgs e)
        {
            _drag.MouseMove 
-= MoveTipMove;
            _drag.MouseUp 
-= MoveTipUp;
        }

        
private void MoveTipMove(object sender, MouseEventArgs e)
        {
            
if (e.Y != initialY) _move.Top = _move.Top + (e.Y - initialY);
            
if (e.X != initialX) _move.Left = _move.Left + (e.X - initialX);
        }
    }

posted @ 2011-07-13 16:35 newzhq 阅读(2792) 评论(22) 编辑