久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区

以文本方式查看主題

-  曙海教育集團論壇  (http://www.rfoamep.cn/bbs/index.asp)
--  Windows Mobile手機開發  (http://www.rfoamep.cn/bbs/list.asp?boardid=48)
----  Windows mobile 開發入門—開發絢麗滑動效果  (http://www.rfoamep.cn/bbs/dispbbs.asp?boardid=48&id=2099)

--  作者:wangxinxin
--  發布時間:2010-12-4 9:38:16
--  Windows mobile 開發入門—開發絢麗滑動效果
前言
    在這里制作一個9宮格的小程序,如果超過9個,那么就自動翻頁。翻頁采用劃動實現,并且有慣性作用。

原理
mobile手機里滑動效果主要是原理是支持屏幕的觸摸,當我們按下、松開時系統分別可以捕捉到相應的坐標位置,然后動態的改變布局,從而達到劃動的效果。
圖型button

由于mobile還沒有支持圖片button,所以我們做出一個輔佐類,當按下、彈開時分別使用鋼筆繪制不同的圖片到屏幕。


Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;


namespace iPhoneUI
{
    public class ImageButton  
    {
        internal Rectangle clientArea;
        internal Form owner;
        internal Bitmap image;
        internal Bitmap imageDown;
        internal bool pushed = false;
        internal Point location;
        internal Point start;
        internal int h=30,w=30;
        internal bool Enable = false;
        private double pressTime = Environment.TickCount;
        internal bool pushedOneTime = false;

        public string Name {get;set;}

        public bool IsPressedOneTime
        {
            get { return pushedOneTime; }
            set { pushedOneTime = value; }
        }

        public event System.EventHandler Click;
        public event System.EventHandler DoubleClick;

        public ImageButton(Form owner,int w,int h)
        {
            this.w = w;
            this.h = h;
            
            this.owner = owner;
            Attach(owner);         
        }
        public ImageButton(Form owner,Point location)
        {
            this.owner = owner;
            Attach(owner);
            this.location = location;
            this.clientArea = new Rectangle(location.X, location.Y, h, w);
        }

        public Point Location
        {
            set
            {
                this.location = value;
                this.clientArea = new Rectangle(location.X, location.Y, w, h);
            
            }
            get { return location; }         
         
        }      

        public Bitmap Image
        {
            get { return image;}
            set  
            {  
                image = value;
                if (image != null)
                {
                    clientArea = new Rectangle(location.X, location.Y, image.Width, image.Height);
                }
            }
        }

        public Bitmap ImageDown
        {
            get { return imageDown;}
            set { imageDown = value; }
        }
      
        public bool HitTest(int x, int y)
        {
            return clientArea.Contains(x, y);
        }

        private void Attach(Form owner)
        {            
            owner.MouseDown += new MouseEventHandler(owner_MouseDown);         
            owner.MouseUp += new MouseEventHandler(owner_MouseUp);
            owner.DoubleClick += new EventHandler(owner_DoubleClick);
        }

        void owner_DoubleClick(object sender, EventArgs e)
        {
           
            
        }

        public virtual void owner_MouseUp(object sender, MouseEventArgs e)
        {
            if (!Enable)
                return;

            if (pushed)
            {
                using (Graphics gx = owner.CreateGraphics())
                {
                    this.pushed = false;
                    this.Paint(gx);
                    owner.Invalidate();
                }
                pushed = false;

                if ((Environment.TickCount - pressTime) < 100)
                {
                    if (Click != null)
                        Click(this, e);
                }
            }

//            SendMessage(ButtonCode, "Button Pressed");
        }

        public virtual void owner_MouseDown(object sender, MouseEventArgs e)
        {
            if (!Enable)
                return;

            if (this.HitTest(e.X, e.Y))
            {
                using (Graphics gx = owner.CreateGraphics())
                {
                    this.pushed = true;
                    IsPressedOneTime = true;
                    this.Paint(gx);

                    if ((Environment.TickCount - pressTime) < 300)
                    {
                        if (DoubleClick != null)
                            DoubleClick(this, e);
                    }

                    pressTime = Environment.TickCount;
                }
                start = new Point(e.X, e.Y);            
            }
        }
     
        public void Paint(Graphics gx)
        {
            if (!Enable)
                return;
            //gx.Clear(Color.White);

            ImageAttributes attrib = new ImageAttributes();
            Color color = GetTransparentColor(image);
            attrib.SetColorKey(color, color);

            if (!pushed || imageDown == null)
                gx.DrawImage(image, clientArea, 0, 0, clientArea.Width, clientArea.Height, GraphicsUnit.Pixel, attrib);
                 
            else
            {     
                gx.DrawImage(imageDown, clientArea, 0, 0, clientArea.Width, clientArea.Height, GraphicsUnit.Pixel, attrib);      
                        
            }
            Brush b = new SolidBrush(Color.Black);
           
            int txtX=clientArea.Location.X;
            if(Name.Length<5)//右移5個PIX
                txtX+=5;
            gx.DrawString(this.Name, owner.Font, b, txtX, clientArea.Bottom);

        }

        internal Color GetTransparentColor(Bitmap image)
        {
            return image.GetPixel(0, 0);
        }
     
    }
}


當mouse按下時,判斷是否在圖像所在的區域內,就執行按下時繪制圖像。并且判斷兩次按下時間小于300毫秒,就認為是雙擊,發出注冊雙擊事件。當mouse彈起時,恢復按前的圖像,并且如果按下時間間隔不超過100毫秒,認為是單擊。

初使化按扭


Code
  1<?xml version="1.0" standal?>
  2<DocumentElement>  
  3  <menu>
  4    <Name>測試1</Name>
  5   
  6    <path>Chat 46x46.bmp</path>
  7    <pressPath>Chat 46x46.bmp</pressPath>
  8  </menu>
  9    <menu>
10    <Name>測試1a</Name>
11   
12    <path>Chat 46x46.bmp</path>
13    <pressPath>Chat 46x46.bmp</pressPath>
14  </menu>
15  <menu>
16    <Name>測試1b</Name>
17   
18    <path>lock 46x46.bmp</path>
19    <pressPath>lock 46x46_pressed.bmp</pressPath>
20  </menu>
21   <menu>
22    <Name>測試1c</Name>
23   
24    <path>Internet Explorer 46x46.bmp</path>
25    <pressPath>Internet Explorer 46x46_pressed.bmp</pressPath>
26  </menu>
27  <menu>
28    <Name>測試1d</Name>
29   
30    <path>Close 46x46.bmp</path>
31    <pressPath>Close 46x46_pressed.bmp</pressPath>
32  </menu>
33   <menu>
34    <Name>測試1e</Name>
35  
36    <path>Chat 46x46.bmp</path>
37    <pressPath>Chat 46x46_pressed.bmp</pressPath>
38  </menu>
39  <menu>
40    <Name>測試1f</Name>
41   
42    <path>Camera 46x46.bmp</path>
43    <pressPath>Camera 46x46_pressed.bmp</pressPath>
44  </menu>
45  <menu>
46    <Name>測試1g</Name>
47   
48    <path>Camera 46x46.bmp</path>
49    <pressPath>Camera 46x46_pressed.bmp</pressPath>
50  </menu>
51    <menu>
52    <Name>
53        測試1h
54    </Name>
55  
56    <path>Camera 46x46.bmp</path>
57    <pressPath>Camera 46x46_pressed.bmp</pressPath>
58  </menu>

久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
久久99精品国产麻豆不卡| 国产最新精品精品你懂的| 亚洲免费观看高清| 国产自产高清不卡| 国产亚洲欧美一区二区| 在线亚洲高清视频| 国产精品色噜噜| 韩国精品久久久| 久久精品日韩| 欧美一区二区免费视频| 亚洲国产成人91porn| 97超碰最新| 欧美美女一区二区| 五月天中文字幕一区二区| 国产99在线播放| 日韩一区二区免费在线电影| 亚洲午夜精品网| 国产日韩久久| 2023国产精品| 国产麻豆精品在线观看| 日本一区二区在线视频观看| 国产日韩欧美电影| 成人性生交大片免费看中文网站| 一区二区免费在线视频| 亚洲欧美日韩久久精品| 91麻豆国产香蕉久久精品| 欧美色图免费看| 亚洲超碰精品一区二区| 精品国产一区二区三区麻豆小说 | 欧美一区二区精品| 青草av.久久免费一区| 日本10禁啪啪无遮挡免费一区二区 | 欧美人体做爰大胆视频| 舔着乳尖日韩一区| 日韩欧美第二区在线观看| 综合激情成人伊人| 九色91国产| 国产精品美日韩| 92精品国产成人观看免费| 日韩欧美国产综合| 国产suv精品一区二区三区| 欧美精品一二三四| 国精产品一区一区三区mba视频| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区三区中文字幕 | 好看的日韩精品视频在线| 久久网站热最新地址| 成人自拍视频在线观看| 日韩欧美激情四射| 成人18精品视频| 精品成a人在线观看| 91欧美一区二区| 国产亚洲午夜高清国产拍精品| 91嫩草免费看| 中文字幕一区在线观看| 久久综合九色欧美狠狠| 亚洲最大成人综合| 一区二区在线观看网站| 久久国产精品露脸对白| 欧美剧在线免费观看网站| 国产91富婆露脸刺激对白| 精品国产乱码久久| 国产精品 日韩| 一区二区三区欧美亚洲| 伊人婷婷久久| 国产自产高清不卡| 日韩美女视频在线| 国产高清精品一区二区三区| 亚洲另类一区二区| 色婷婷综合久久久中文字幕| 久久99国产精品久久99果冻传媒| 3d动漫精品啪啪一区二区竹菊| 国产99精品在线观看| 日本韩国欧美一区二区三区| 国产在线不卡一区| 久久综合色播五月| 久久日韩精品| 日本中文一区二区三区| 亚洲精品久久区二区三区蜜桃臀| 美女网站色91| 久久久美女艺术照精彩视频福利播放| 国产日韩久久| 日本欧美加勒比视频| 精品入口麻豆88视频| 精品一区在线播放| 免费的成人av| 国产亚洲成年网址在线观看| 日韩精品电影网站| 国产做a爰片久久毛片| 日本一区二区久久| 曰韩不卡视频| www.亚洲国产| 亚洲综合色丁香婷婷六月图片| 欧美三区在线观看| 国产伦精品一区二区三区免| 日韩精品电影一区亚洲| 精品理论电影在线观看| 欧美福利精品| 国产黄色成人av| 国产精品天天看| 欧美影院精品一区| 成人欧美一区二区三区视频xxx| 亚洲gay无套男同| 久久综合色天天久久综合图片| 日韩精品另类天天更新| 国产不卡在线播放| 一区二区三区精品视频| 日韩精品专区在线| 天堂av一区二区| 91网址在线看| 伦理电影国产精品| 亚洲欧美在线观看| 7777精品伊人久久久大香线蕉的 | 国产精品99久久久| 亚洲在线观看免费视频| 欧美成人午夜电影| 色综合久久久久综合| 国产精品污www一区二区三区| 国产一区二区免费在线| 亚洲午夜久久久久久久久电影院| 亚洲精品一区二区精华| 欧美亚一区二区| 青青草国产精品| yy111111少妇影院日韩夜片| 国产毛片精品一区| 午夜精彩视频在线观看不卡| 中文字幕电影一区| 日韩一区二区在线观看视频| 色8久久精品久久久久久蜜| 久久久一本精品99久久精品66| 国v精品久久久网| 五月婷婷久久丁香| 欧美国产丝袜视频| 欧美一区二区三区思思人| 亚洲午夜精品一区二区三区| av电影在线不卡| 国产精品66部| 午夜精品在线看| 久久久777精品电影网影网| 91福利视频久久久久| 日韩久久精品一区二区三区| 成人短视频下载| 日韩高清不卡在线| 国产精品色呦呦| 欧美一区二区在线播放| 欧美亚洲综合网| 蜜桃成人在线| av成人观看| 国产精品一卡二| 国产一区二区91| 天天射综合影视| 欧美精品一区二区蜜臀亚洲| 在线看国产日韩| 欧美一区二区三区在线播放 | 亚洲精品写真福利| 久久精品水蜜桃av综合天堂| 欧美日韩视频一区二区| 久久99国产精品| 久久久久网址| 91国产在线免费观看| 国产乱对白刺激视频不卡| 日日摸夜夜添夜夜添国产精品| 一级日本不卡的影视| 国产精品久久三| 久久综合色一综合色88| 欧美日韩国产综合视频在线观看| 日韩精品欧美专区| 亚洲精品一区二区三区蜜桃久 | 日韩视频免费观看高清完整版在线观看| 日韩福利二区| 精品国产乱码久久久久久蜜柚 | 中文字幕五月欧美| 欧美精品一区二区在线观看| 久久综合丝袜日本网| 日韩免费视频一区二区| 欧美日韩国产综合久久| 在线视频一区二区三区| 日本一区二区三区免费观看| 四虎永久国产精品| 久久久久久久久久久一区 | 国内精品视频免费| 国产91对白在线观看九色| av在线不卡电影| eeuss鲁片一区二区三区在线观看| 国产一区二区三区四区五区美女 | 国产大片一区二区| 国产91精品精华液一区二区三区| 蜜桃av噜噜一区| 日产精品久久久久久久性色| 首页国产丝袜综合| 午夜欧美电影在线观看| 美女在线观看视频一区二区| 日韩激情一区二区| 欧美aaaaa成人免费观看视频| 亚洲成人av一区二区| 亚洲国产精品久久久男人的天堂 | 日韩在线一区二区三区| 亚洲成人福利片| 日本欧美加勒比视频| 理论电影国产精品|