码迷,mamicode.com
首页 > 其他好文 > 详细

分享一个自定义打印套打方案(二),扩展Panel,以支持鼠标随意拖动

时间:2014-07-16 18:29:02      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   

接上一章节,本篇主要介绍一种支持鼠标随意拖动Panel内部控件位置的方法.为了简单起见,这里我们不妨就暂称我们将要扩展的Panel容器名称为 MoveControlPanel,该容器至少需要实现以下功能

1. 识别当前鼠标位置,是否处于某个内部组件的边框位置,以让鼠标显示出对应的图标(拉伸,移动…)

2.移动鼠标以改变内部某个组件的大小及坐标,

3.保存容器内每个组件的当前坐标及大小.

为了便于描述当前光标状态,我们不妨定义一个枚举.姑且称其为 EMousePointPosition, 其至少应该具有如下定义.

       /// <summary>
        /// 光标状态
        /// </summary>
        private enum EMousePointPosition
        {
            /// <summary>
            ////// </summary>
            None = 0,

            /// <summary>
            /// 处于拉伸右边框位置
            /// </summary>
            MouseSizeRight = 1,

            /// <summary>
            /// 处于拉伸左边框位置
            /// </summary>
            MouseSizeLeft = 2,

            /// <summary>
            /// 处于拉伸下边框位置
            /// </summary>
            MouseSizeBottom = 3,

            /// <summary>
            /// 处于拉伸上边框位置
            /// </summary>
            MouseSizeTop = 4,

            /// <summary>
            /// 处于拉伸左上角位置
            /// </summary>
            MouseSizeTopLeft = 5,

            /// <summary>
            /// 处于拉伸右上角位置
            /// </summary>
            MouseSizeTopRight = 6,

            /// <summary>
            /// 处于拉伸左小角位置
            /// </summary>
            MouseSizeBottomLeft = 7,

            /// <summary>
            /// 处于拉伸右下角位置
            /// </summary>
            MouseSizeBottomRight = 8,

            /// <summary>
            /// 鼠标拖动状态
            /// </summary>
            MouseDrag = 9
        }

未完待续

分享一个自定义打印套打方案(二),扩展Panel,以支持鼠标随意拖动,布布扣,bubuko.com

分享一个自定义打印套打方案(二),扩展Panel,以支持鼠标随意拖动

标签:style   blog   http   color   os   io   

原文地址:http://www.cnblogs.com/xie-zhonglai/p/3845406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!