-1

当用户拖动面板或标签或我想要的任何项目时,我希望移动整个表单。我如何在 VisualC++ 中做到这一点?我知道在 VB 中这样做,但我正在使用 VisualC++。有什么帮助吗?

4

2 回答 2

0

我不知道是否有其他选择,但您可以为 WM_MOUSEDOWN 创建自己的处理程序(不记得确切)。然后你要做的就是计算出点击位置和控制器之间的差异。

此外,为了让它移动,您需要处理 WM_MOUSEMOVE 或其他东西,以使用指针移动表单。

您可以通过简单地使用布尔值来告诉 mousemove 它是否应该对鼠标移动做出反应来做到这一点。

于 2012-11-03T22:39:17.150 回答
0
  1. 选择主窗体
  2. 属性窗口选择事件并添加MouseMove事件
  3. 编码:

    public int X_cood;
    bool Mouse_Cord_Stored = false;
    int MainForm_Mouse_X_Coordinates;
    int MainForm_Mouse_Y_Coordinates;
    Point p = new Point(ActiveForm.Location.X, ActiveForm.Location.Y);
    
    private void MainForm_MouseMove(object sender, MouseEventArgs e)
    {
        switch (e.Button)
        {
            case (MouseButtons.Left)://To Let user move the Form1 when Left mouse button is pressed
                {
                    switch (Mouse_Cord_Stored)
                    {
                        case false:
                            {
                                //If Mouse Coordinates are not stored, then store them.
                                MainForm_Mouse_X_Coordinates = e.X;
                                MainForm_Mouse_Y_Coordinates= e.Y;
                                Mouse_Cord_Stored = true;
                                break;
                            }
                        case true:
                            {
                                //Move the Form using ActiveForm.Location if mouse coordinates are stored
                                Form1.ActiveForm.Location = new Point(Form1.ActiveForm.Location.X + e.X - MainForm_Mouse_X_Coordinates
                                                                            , Form1.ActiveForm.Location.Y + e.Y - MainForm_Mouse_Y_Coordinates);
                                break;
                            }
                    }
                    break;
                }
    
            default:
                {
                    switch (Mouse_Cord_Stored)
                    {
                        case true:
                            {
                                Mouse_Cord_Stored = false;
                                break;
                            }
                    }
                    break;
                }
        }
    
于 2014-07-16T09:06:33.717 回答