BUTTON
03 按钮控件(Button)
2.按钮控件的主要事件 BN_CLICKED:在用户单击一个按钮时产生。按钮父窗口通过WM_COMMAND消息接收该通知消息。 BN_DOUBLELCLICKED:在用户双击一个按钮时产生。
Thank you
还有什么疑问可以到提出 也可以以发送邮件到 mingrisoft@
说明 按钮具有黑色的边框。用户在对话框中按<Enter>键,如果窗口 中没有其他命令处理,该按钮的单击事件将要被执行 自定义按钮。用户需要在OnDrawItem消息处理函数中绘制按钮 的外观 按钮将显示一个图标代替文本 按钮将显示一个位图代替文本 取消按钮的3D外观
水平方向设置文本的对齐方式
垂直方向设置文本的对齐方式
按钮控件的主要属性
右键单击按钮控件,在弹出的快捷菜单中选择Properties菜单项,将弹出按钮控件的属性窗口,按钮控件 的主要属性如表7.7所示。
表7.7
按钮控件主要属性
属性
Default button
Owner draw
Icon Bitmap
Flat Horizontal alignment Vertical alignment
按钮控件的主要方法、事件
1.按钮控件的主要方法 (1)GetState方法 该方法用于返回按钮的当前状态。返回值为返回按钮的状态,可选值如下。 BST_CHECKED:按钮被选中; BST_UNCHECKED:按钮没有被选中; BST_FOCUS:按钮获得焦点; BST_INDETERMINATE:按钮处于灰色状态; BST_PUSHED:按钮处于高亮状态。 语法:
UINT GetState( ) const;
(2)SetState方法 该方法用于设置按钮状态。 语法:
java button用法
java button用法JAVA中的Button类是用于创建按钮的,它提供了一种简单的方式来实现用户界面的交互。
本文将介绍Button类的基本使用方法,包括创建按钮、设置按钮的属性和响应按钮的点击事件等。
一、创建按钮要创建一个按钮,首先需要在JAVA程序中导入Button类。
在代码中使用import语句导入Button类:import java.awt.Button;然后,可以使用Button类的构造函数创建一个按钮对象。
Button类的构造函数有一个可选的参数,用于指定按钮的显示文本。
示例代码如下:Button button = new Button("Click me");这样就创建了一个名为button的按钮对象,按钮上显示的文本为"Click me"。
二、设置按钮的属性创建按钮对象后,可以使用Button类的方法来设置按钮的属性。
以下是一些常用的按钮属性设置方法:1. 设置按钮的尺寸和位置:使用setBounds方法可以设置按钮在窗口中的位置和尺寸。
setBounds 方法有四个参数,分别为按钮的x坐标、y坐标、宽度和高度。
示例代码如下:button.setBounds(100, 100, 100, 50);这样就将按钮的左上角位置设置在(100, 100),宽度为100,高度为50。
2. 设置按钮的背景色和前景色:使用setBackground和setForeground方法可以分别设置按钮的背景色和前景色。
这两个方法的参数可以是颜色常量,也可以是RGB值。
示例代码如下:button.setBackground(Color.RED);button.setForeground(Color.WHITE);这样就将按钮的背景色设置为红色,前景色设置为白色。
3. 设置按钮的字体和字体大小:使用setFont方法可以设置按钮上文本的字体和大小。
setFont方法的参数为一个Font对象,可以通过Font类的构造函数来创建指定字体和大小的Font对象。
Button的设置及各种属性
Button的设置及各种属性(1)UIButton类继承⾃UIControl,⽽UIControl继承⾃UIView,因为UIView就是个矩形区域,所以UIButton实例化的对象其实都是⼀个矩形,虽然有各种圆⾓、增加联系⼈、信息按钮等等,给它们加个背景它们就现形成矩形了,⽽且它们有个frame属性,这就是设置位置和矩形框的。
(2)UIButton创建⼀个按钮不⽤实例化,也就是不⽤alloc和init,⽽是直接调⽤内置的⼏个⼯⼚⽅法即可,这⼀点和UILabel *label1= [[UILabel alloc]init]不同,⽽且这些类型⾥⾯最常⽤的时Custom类型,因为我们可以⾃定义图⽚,以及图⽚和⽂字的位置。
(3)按钮有很多状态,正常状态Normal、被点击时状态Highlighted等等,所以可以分别对不同状态设置属性。
(4)其实按钮最重要的不是上⾯那些设置属性,⽽是按钮关联的操作是什么?即点击后发⽣什么,这需要⼀个addtarget操作函数,如果多个按钮⽤到同⼀个函数,则需要tag属性来区别是哪个按钮。
(5)要⾃定义按钮,⼀种⽅式是我们先⾃定义⼀个继承UIButton的类,然后对这个类进⾏重写函数,相当于定制,最后⽤这个类去创建按钮,这些按钮也就具有⾃定义的样式(这种⽅法只针对⾃定义按钮类型有效)。
1 - (void)viewDidLoad {2//⽣成⼀个btn1对象,不需要alloc和init,⽽是直接⽤内置的⼯⼚⽅法,有很多可CMD+点击查看3 UIButton *btn1=[UIButton buttonWithType:UIButtonTypeRoundedRect];4//设置位置和宽⾼5 btn1.frame=CGRectMake(30, 30, 300, 30);6//设置按钮的⽂字,状态有好⼏种常⽤的时Normal和Highlighted(点击时状态),可CMD+点击查看7 [btn1 setTitle:@"点我啊!" forState:UIControlStateNormal];8//设置点击时的⽂本9 [btn1 setTitle:@"我被点了!" forState:UIControlStateHighlighted];10//设置⽂字颜⾊11 [btn1 setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];12 [btn1 setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];13//设置点击时按钮背景颜⾊,呃,完全不起作⽤,即⽆效果14 [btn1 setTintColor:[UIColor purpleColor]];15//点击时按钮发光,就是在按钮中间发亮光,这个有效果16 btn1.showsTouchWhenHighlighted=YES;17//设置tag标签,唯⼀标记⽤,可⽤于分辨是哪个按钮控件18 btn1.tag=1;19//设置背景颜⾊20 btn1.backgroundColor=[UIColor redColor];21//现在⾼版本的iOS⾥这个⽅法会让⼈抓狂,因为我们发现,不设置背景时,圆⾓按钮没有边框,所以上⾯设置frame其实意义不⼤22//设置了背景或者图⽚后,背景是矩形,说好的圆⾓呢?坑爹呢!23//所以现在⼤多数开发都是⽤UIButtonTypeCustom,⽽不是UIButtonTypeRoundedRect2425//最重要的添加触发事件⽤户交互26//self是指调⽤哪个对象的⽅法27//btnClick:是调⽤的⽅法,btnClick和btnClick:不⼀样,后者表⽰有参数28//UIControlEventTouchUpInside是触发事件,有很多,可以CMD+点击查看29//这⾥三个参数都可以随意更换,⽐如新建⼀个类Hi,在类⾥定义⼀个⽅法-(void)report;30//然后在此⽂件引⼊Hi.h头⽂件,在这⾥实例化⼀个对象hi1,然后就可以⽤hi1代替self,⽤report代替btnClick31//意思就是点击后调⽤的是hi1对象⾥⾯的report⽅法32 [btn1 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];3334//再增加⼀个按钮35 UIButton *btn2=[UIButton buttonWithType:UIButtonTypeContactAdd];36 btn2.frame=CGRectMake(30, 80, 300, 30);37//这个增加联系⼈按钮其实也是⼀个矩形,和上⾯的⼀样,都是继承⾃UIControl,⽽后者⼜继承⾃UIView,所以是矩形38//虽然按钮就⼀点点⼤,但点击整个矩形区域都是相当于点击按钮39 btn2.backgroundColor=[UIColor greenColor];40//设置标签41 btn2.tag=2;42//增加事件:和btn1调⽤同⼀个⽅法,但问题是我们如果需要区分是哪个按钮的话,就需要⽤到tag,并且把控件作为参数传递给btnClick43 [btn2 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];4445//再增加⼀个最常⽤的Custom按钮,其他按钮⾃⼰尝试46 UIButton *btn3=[UIButton buttonWithType:UIButtonTypeCustom];47 btn3.frame=CGRectMake(30 , 150 , 300, 90);48 btn3.backgroundColor=[UIColor redColor];49 btn3.tag=3;50 [btn3 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];51//设置图⽚背景被点击时变暗(但没有图⽚背景时则⽆效果)52 btn3.adjustsImageWhenHighlighted=YES;53//所以,增加图⽚⽅式之⼀是增加背景图⽚,这个图⽚如⼩会被放⼤充满整个背景54 [btn3 setBackgroundImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];55//还有⼀种增加图⽚的⽅式,是在按钮上⾯加⽽不是背景,这种⽅式不会缩放图⽚,⽽且会居中56 [btn3 setImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];57//设置按钮⽂字,增加的⽂字会和setImage图⽚⼀并居中,图⽚在左边,⽂字紧随其后58 [btn3 setTitle:@"⾃定义按钮" forState:UIControlStateNormal];59//如果需要重新排版这个图⽚和按钮⽂字的位置,则需要重写UIButton类⾥⾯的两个函数,点击UIButton可查看60//- (CGRect)titleRectForContentRect:(CGRect)contentRect;⽂字相对于按钮的位置61//- (CGRect)imageRectForContentRect:(CGRect)contentRect;图⽚相对于按钮的位置62//第⼀步:可以重新定义⼀个UIButton类叫myButton,在.m⾥重写如下函数63//- (CGRect)titleRectForContentRect:(CGRect)contentRect{64// return CGRectMake(50, 25, 100, 40);65//}66//- (CGRect)imageRectForContentRect:(CGRect)contentRect{67// return CGRectMake(150, 25, 40, 40);68//}69//第⼆步,在这个⽂件中引⼊myButton.h头⽂件,然后实例化btn3的时候,⽤myButton,⽽不⽤原始的UIButton 70//myButton相当于稍微定制了⼀下原⽣的UIButton,所以前者实例出得对象也就具有定制效果71//这种⽅式仅对UIButtonTypeCustom有效,其他⽆效7273//把三个按钮显⽰出来74 [self.view addSubview:btn1];75 [self.view addSubview:btn2];76 [self.view addSubview:btn3];77 [super viewDidLoad];78// Do any additional setup after loading the view, typically from a nib.79 }80//增加⼀个参数,即由原先的-(void)btnClick{}变成如下81//因为我们知道这⾥都是按钮对象,所以可以⽤(UIButton *)sender,但通常我们⽤通⽤指针id82 -(void)btnClick:(id)sender{83//把传递过来的控件参数转化成按钮84 UIButton *btn=(UIButton *)sender;85//把btn.tag转化成整型86 NSLog(@"OMG,it is %i",(int)btn.tag);87 }。
python中button的用法
python中button的用法Python中Button的用法Python是一种广泛使用的高级编程语言,凭借其简洁易读的语法和强大的功能,赢得了广大开发者的喜爱。
在Python中,Button(按钮)是一种常用的GUI元素,用于触发与之关联的操作。
本文将介绍Python中Button的用法,包括创建Button、设置其属性以及绑定事件。
创建Button在Python中,我们可以使用tkinter库创建Button。
下面是一个简单的示例代码,演示如何创建一个Button并显示在窗口上:import tkinter as tkdef click():print("Button clicked!")window = ()button = (window, text="Click me!", command=click)()()在上面的代码中,我们首先导入了tkinter库,并定义了一个名为click的函数,该函数用于处理Button点击事件。
然后,我们创建了一个Tk对象,表示一个顶级窗口。
接着,我们使用Button类创建了一个名为button的按钮,设置了其显示文本为”Click me!“,并将click函数绑定到按钮的点击事件上。
最后,我们通过pack方法将按钮显示在窗口上。
设置Button属性除了设置按钮的显示文本和绑定事件外,我们还可以设置按钮的其他属性,以满足不同的需求。
设置按钮大小通过设置Button的width和height属性,我们可以指定按钮的宽度和高度。
下面是一个示例代码:button = (window, text="Click me!", width=10, heigh t=2)在上述代码中,我们将按钮的宽度设置为10个字符的宽度,高度设置为2个字符的高度。
设置按钮颜色Button的背景色和前景色可以通过设置bg和fg属性来实现。
BUTTON
BUTTON-钮扣表示钮扣的大小L在国际上通常用来表示钮扣的大小,通常的钮扣规格如下: 1L=1/40INCH10L=6.35MM14L=9MM16L=10MM18L=11.5MM20L=12.5MM22L=14MM24L=15MM26L=16MM27L=17MM28L=18MM30L=19MM32L=20MM34L=21MM36L=23MM38L=24MM40L=25MMangular 2 hole button: 角形双眼钮扣bakelite button: 电木钮扣Bar button:杆状钮扣Blazer button:外衣式大钮扣button with prismatic shank: 棱柱柄钮扣button mo(u)ld: 包钮扣芯button sew: 钉钮扣buttonstick: 钮扣垫板button strip: 钮扣加固带buttonhole scissors,buttonhole cutter: 开钮扣剪刀button hook: 钮扣钩Button tray:钮扣盘button-through: (衣服)从上到下都有钮扣(的)button wrap: (同button stand)扣位,钮扣座;叠门,搭门,钮扣搭门Button-down collar:领尖钉有钮扣的领子,扣结领Button-down skirt:前开襟有钮扣的裙子buttonhole and button closing: 带钮孔和钮扣的门襟bouton D'orelle[:法]钮扣型耳环button grip: 钮扣夹button tension testCaraco:(18世纪后期)女式短上衣,一拉扣上衣(上半身合体并有腰褶,前一摆短于后下摆,后下摆超过臀部)Clasp coat:抱合式大衣[女式无钮扣,用手抱合]crocheted button: 钩编钮扣Coat dress:开襟明钮女式长服,外套式连裙装,开襟(钮扣式)连衣裙,(从领口到下摆有一排扣子的)女式紧式外衣,外套式连裙装Cuff button:袖口钮扣cheese plate: 大的钮扣dot button: 打点钮扣Elastic braid with button hole:带钮扣眼的松紧带Eye button hole:圆头钮扣孔eyelet button: 鸽眼钮扣evelet shank button: 带孔钮柄钮扣Four-hole button:四孔钮扣fastening machine: 钉扣(按钮,钮扣等)机frogging: 纺锤形钮扣garment closure: 钮扣,拉链gripper fastener:(夹钉在衣服上的)大揿钮按扣Grommet:(布、皮革等开孔处的)扣眼;(军帽的)帽顶圈;金属环洞Grumment:(布、皮革等开孔处的)扣眼;(军帽周边的)帽顶圈Haberdasher: 经营衬衣、帽子、领带、短袜、手套等的)男子服饰用品商(美国);(经营钮扣、针线、缎带等的)零星服饰用品商(英国)heavy duty boot: (结实带钩扣的)厚重耐用靴hook and eye tape: 钩眼钮扣带horn button: 角制钮扣huge button: 大型钮扣lacto button: 合成树脂钮扣leather nub: 包皮钮扣metal button: 金属钮扣mini button: 迷你钮扣mother pearl button: 贝壳钮扣Matching button:配色钮扣missing button: 错用钮扣Newbury coat:纽贝里外衣[单排钮扣]overcoat button: 大衣钮扣,有柄钮扣Pearl button:波状钮扣,珍珠扣,贝壳钮扣Pearly: 贝壳钮扣,珍珠钮扣;用珍珠装饰的Pearlies: 贝壳钮扣,珍珠钮扣;有贝壳钮扣的服装Polyester button:聚酯钮扣[塑料扣]polyester pearlized button: 聚酯仿珠钮扣popular button: 流行钮扣remove buttons: 除去钮扣洗涤(洗衣机用语)Removable cuff:开衩式西服袖口[有一颗钮扣可以扣住或松开]reinforcing button: 加固钮扣spare button: 备用钮扣single-breasted: (上衣等)单排钮扣的single buttoned: 单边钮扣self-shank button: 单柄钮扣security of metallics buttons, rivets, ets. : 金属钮扣、铆钮的紧固试验S.B.(single breast): 单排钮扣staghorn button: 鹿角钮扣Stranding thread:上蜡亚麻线[锁钮扣眼用]Tailor's trimming:服装附件[如带子、钮扣等的总称]Toggle button:套环钮扣;棒形钮扣two-hole button: 两眼钮扣BTN. BUTTON:钮扣SHANK:(钮扣)绕脚线shank wrap: 缠钮扣把short shank button: 短柄钮扣synthetic resin button: 合成树脂钮扣vest button: 背心钮扣unbutton: 不扣上钮扣;解开钮扣nut button: 果壳钮扣X-ligne button: X号钮扣wire shank button: 金属柄钮扣关于钮扣的中英文词汇对照attaching button and buttonhole tape: 缝合钮扣和钮孔垫带attaching button: 缝钮扣animal bone button,animal horn button: 动物骨钮扣angular 2 hole button: 角形双眼钮扣bakelite button: 电木钮扣Bar button:杆状钮扣Blazer button:外衣式大钮扣brass button nickelled: 镀镍铜钮扣Button:钮扣Buttonless: 没有钮扣的button knot: 扣结,钮扣结button with prismatic shank: 棱柱柄钮扣button mo(u)ld: 包钮扣芯button sew: 钉钮扣buttonstick: 钮扣垫板button strip: 钮扣加固带Button fastening/ Button sewing/fastener attaching:钉钮扣buttonhole scissors,buttonhole cutter: 开钮扣剪刀button hook: 钮扣钩Button tray:钮扣盘button-through: (衣服)从上到下都有钮扣(的)button wrap: (同button stand)扣位,钮扣座;叠门,搭门,钮扣搭门Button-down collar:领尖钉有钮扣的领子,扣结领Button-down skirt:前开襟有钮扣的裙子Buttonhole:钮扣孔,扣眼buttonhole and button closing: 带钮孔和钮扣的门襟bouton D'orelle[:法]钮扣型耳环button grip: 钮扣夹button opening: 钮扣开门button tension testCaraco:(18世纪后期)女式短上衣,一拉扣上衣(上半身合体并有腰褶,前一摆短于后下摆,后下摆超过臀部)Cardigan:羊毛衫[前有钮扣的毛线编织背心],开襟绒线衫,毛织夹克Clasp coat:抱合式大衣[女式无钮扣,用手抱合]crocheted button: 钩编钮扣Coat dress:开襟明钮女式长服,外套式连裙装,开襟(钮扣式)连衣裙,(从领口到下摆有一排扣子的)女式紧式外衣,外套式连裙装Cuff button:袖口钮扣。
android button的写法
android button的写法如何在Android中编写按钮(Button)?按钮(Button)是Android应用程序中常见的用户界面组件之一。
通过按钮,用户可以与应用程序进行交互,触发特定的操作或事件。
在Android 开发过程中,编写按钮涉及到布局文件和Java代码的编写。
本文将介绍如何在Android中编写按钮的步骤。
1. 创建一个新的Android项目在Android Studio中,点击“File”菜单,然后选择“New”和“New Project”来创建一个新的Android项目。
根据提示输入项目名称、包名和存储位置。
点击“Finish”按钮完成项目的创建。
2. 打开布局文件在Android项目的res文件夹中找到“layout”文件夹,然后打开“activity_main.xml”布局文件。
这是应用程序的主要布局文件。
3. 添加按钮组件在布局文件中,添加一个按钮组件。
可以使用XML标签<Button>来定义一个按钮,示例如下:xml<Buttonandroid:id="+id/myButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Click Me" />首先,我们为按钮指定了一个唯一的ID,以便在Java代码中引用它。
然后,使用“android:layout_width”和“android:layout_height”属性来指定按钮的宽度和高度。
最后,使用“android:text”属性来设置按钮上显示的文本。
4. 处理按钮点击事件现在,我们需要在Java代码中编写按钮的点击事件处理逻辑。
打开MainActivity.java文件,找到onCreate()方法,然后在其下面添加以下代码:javaButton myButton = findViewById(R.id.myButton);myButton.setOnClickListener(new View.OnClickListener() { Overridepublic void onClick(View v) {在这里编写按钮点击事件的逻辑Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();}});首先,我们通过findViewById()方法获取到布局文件中的按钮实例。
python tkinter button参数
python tkinter button参数Python Tkinter Button参数详解Tkinter是Python自带的GUI库,可以用于创建各种窗口、按钮、标签等GUI元素。
其中Button是Tkinter中最常用的控件之一,它可以响应用户的点击事件,执行相应的操作。
在使用Button时,我们需要设置一些参数来控制其外观和行为。
本文将详细介绍Python Tkinter Button的各种参数。
一、Button基本参数1. texttext参数用于设置Button上显示的文本内容。
例如:```button = tkinter.Button(root, text='Click me')```2. commandcommand参数用于指定点击Button时要执行的函数或方法。
例如:```def click():print('Button clicked')button = tkinter.Button(root, text='Click me', command=click)```当用户点击按钮时,程序会自动调用click函数并输出“Button clicked”。
3. width和heightwidth和height分别用于设置Button的宽度和高度(单位为像素)。
例如:```button = tkinter.Button(root, text='Click me', width=100,height=50)```4. padx和padypadx和pady分别用于设置Button内部文本与边框之间的水平和垂直间距(单位为像素)。
例如:```button = tkinter.Button(root, text='Click me', padx=20, pady=10) ```5. fontfont参数用于设置Button上文本的字体样式。
button和submit有什么区别
button和submit有什么区别2009-01-29 01:11:52| 分类:网站开发|字号订阅button和submit有什么区别呢?type=button 就单纯是按钮功能type=submit 是发送表单但是对于从事WEB UI的人应该要注意到,使用submit来提高页面易用性:使用submit后,页面支持键盘enter键操作,而很多WEB软件设计师,可能没有注意到submit统一.用button后往往页面不支持enter键了。
所以需要支持enter键,必须要设置个submit,默认enter键对页面第一个submit进行操作。
==========================<input type="submit" name="b1" value="提交" onClick="bt_submit_onclick()">执行完onClick,转到actionsubmit:提交按钮,点击之后直接将数据提交的服务器端,不会对鼠标的mousepressed等操作进行处理,也不触发脚本。
button:简单的按钮,有按钮的一些事务处理,有脚本就通过脚本将参数传过去可以自动提交不需要onClick。
所以说onclick这里可以不要。
<input type="button" name="b1" value="提交" onClick="bt_submit_onclick()">执行完onClick,跳转文件在js文件里控制。
提交需要onClick。
比如:1,onclick="form1.action='a.jsp';form1.submit();" 这样就实现了submit的功能了。
button onclick在html中用法
button onclick在html中用法在HTML中,button元素常用于创建用户可以点击的按钮。
onclick属性则是一个非常有用的属性,它允许我们在用户点击按钮时执行一些JavaScript代码。
这样,我们就可以实现一些动态的效果,如更改文本,触发AJAX请求,甚至跳转到其他页面。
下面就来详细介绍一下button onclick在HTML中的用法。
一、button元素与onclick属性的基础使用HTML的button元素本身没有onclick属性,但我们可以使用"form"标签包裹button元素,这样就可以在提交表单时触发onclick事件。
例如:```html<form action="/submit" method="post"><input type="text" name="username"><input type="submit" value="Submit"></form>```在这个例子中,当用户点击提交按钮时,表单将被提交,同时也会触发onclick事件。
二、单独使用button元素的onclick属性我们也可以单独使用button元素的onclick属性,但此时需要使用JavaScript来处理点击事件。
例如:```html<button onclick="alert('Hello, world!')">Click me</button>```在这个例子中,当用户点击按钮时,会弹出一个包含"Hello, world!"的警告框。
三、使用button元素的onclick事件处理函数在JavaScript中,我们可以定义一个事件处理函数来处理button的点击事件。
button onclick在html中用法
button onclick在html中用法(实用版)目录1.概述2.HTML 中的 button 元素3.button 元素的 onclick 属性4.onclick 属性的用法示例5.总结正文1.概述在网页开发中,按钮(button)元素是 HTML 中的一种常用控件,它可以让用户在网页上执行某些操作。
其中,onclick 属性是一种客户端脚本,当用户点击按钮时,会触发该脚本。
这对于实现网页交互功能非常有用。
本文将介绍 button 元素在 HTML 中的用法以及 onclick 属性的具体应用。
2.HTML 中的 button 元素在 HTML 中,button 元素用于创建一个按钮。
button 元素可以包含文本或者图像,用户点击这个按钮后,可以跳转到其他网页、提交表单或者执行其他操作。
以下是一个简单的 button 元素示例:```html<button>点击我</button>```3.button 元素的 onclick 属性onclick 属性是一种客户端脚本,当用户点击 button 元素时,会触发该脚本。
在 onclick 属性中,我们可以编写 JavaScript 代码来实现各种功能。
以下是一个使用 onclick 属性的 button 元素示例:```html<button onclick="alert("你点击了按钮!");">点击我</button> ```在这个示例中,当用户点击按钮时,会弹出一个警告框,显示“你点击了按钮!”。
4.onclick 属性的用法示例下面我们通过一个简单的示例,来说明如何使用 onclick 属性实现网页交互功能。
假设我们有一个网页,包含一个按钮和一个段落,当用户点击按钮时,会弹出一个警告框显示当前时间,同时段落的文本会变为红色。
以下是实现这个功能的 HTML 代码:```html<!DOCTYPE html><html><head><meta charset="utf-8"><title>onclick 属性示例</title><script>function showTime() {var now = new Date();var time = now.toLocaleString();alert(time);}</script></head><body><button onclick="showTime()">显示当前时间</button><p id="text">点击按钮查看当前时间。
button实现的原理
button实现的原理在现代的用户界面设计中,按钮(button)是一个常见的元素,用于触发特定的操作或执行特定的功能。
无论是在电脑、手机还是其他设备上,按钮都是用户与应用程序进行交互的重要途径之一。
那么,按钮是如何实现的呢?按钮的实现原理其实并不复杂,下面将详细介绍。
1. HTML和CSS按钮的外观通常由HTML和CSS来控制。
HTML是一种标记语言,用于描述网页的结构,而CSS则用于控制网页的样式。
通过HTML中的<button>标签,我们可以定义一个按钮,并通过CSS样式来设置按钮的颜色、大小、字体等。
2. JavaScript按钮的功能实现主要依赖JavaScript。
JavaScript是一种脚本语言,可以在网页中添加动态功能和交互效果。
通过JavaScript,我们可以为按钮添加点击事件,并在点击时触发相应的操作或功能。
3. 事件监听在JavaScript中,可以通过addEventListener()方法为按钮添加事件监听器。
事件监听器可以监听按钮的各种事件,例如点击事件(click)、鼠标移入事件(mouseover)、鼠标移出事件(mouseout)等。
当按钮发生相应的事件时,事件监听器会调用相应的函数来处理事件。
4. 回调函数在事件监听器中,我们可以定义一个回调函数,用于处理按钮事件。
回调函数是一种特殊的函数,它在特定事件发生时被调用。
当按钮被点击时,回调函数会执行特定的操作或功能,例如跳转到另一个页面、显示弹窗、提交表单等。
5. 按钮的状态按钮还可以有不同的状态,例如默认状态、悬停状态、按下状态等。
通过CSS样式和JavaScript,我们可以为按钮定义不同状态下的外观和行为。
例如,当鼠标悬停在按钮上时,可以改变按钮的颜色或添加动画效果;当按钮被按下时,可以改变按钮的样式或执行其他操作。
6. 响应式设计随着移动设备的普及,响应式设计成为了重要的考虑因素。
按钮的实现也需要考虑不同设备的屏幕尺寸和交互方式。
pushbutton的用法
pushbutton的用法
pushbutton的用法主要有以下几种:
1.pushbutton可以用作名词,译为“按钮”。
例如,在应用程序中,您可能
会看到一个pushbutton控件,用于触发特定的操作或命令。
2.pushbutton可以用作动词,意思是“按按钮”。
例如,在电子设备上,您
可能会看到一个pushbutton,用于控制电源开关或进行其他操作。
下面是一个例子:
在某个应用程序中,有一个pushbutton控件,用户可以通过单击该按钮来执行某些操作。
例如,如果该应用程序是一个计算器应用程序,那么pushbutton 控件可以用于执行加法、减法、乘法或除法等基本运算。
当用户单击pushbutton 控件时,应用程序将执行相应的操作,并将结果显示在屏幕上。
希望以上信息能帮助您更好地了解pushbutton的用法。
Button用户手册说明书
Button User ManualUpdated January 17, 2020Button is a wireless panic button with protection against accidental press and additional mode to control .Button only operates with . No provision is made for connection to theand integration modules!Button is connected to the security system and con gured via on iOS, Android, macOS, and Windows. The users are alerted of all alarms and events via push noti cations, SMS, and phone calls (if enabled).The Ajax security system can be used for independent monitoring of the site and can be connected to the security company’s Central Monitoring Station.automation devicesAjax hubsocBridge Plus uartBridgeAjax apps Buy panic button ButtonFunctional elementsOperating principleButton is a wireless panic button that, when pressed, transmits an alarm tousers, as well as to the security company’s CMS. In Control mode, Button allows you to control Ajax automation devices with a short or long press of a button.You can bind the action of an automation device (, or ) to a button press in the Button — Scenarios menu.The Button is equipped with protection against accidental press and transmits alarms at a distance of up to 1,300 m from the hub. Please be aware that the presence of any obstructions that impede the signal (for example, walls or oors) will reduce this distance.Button is easy to carry around. You can always keep it on a wrist or a neckless.The device is resistant to dust and splashes.1. Alarm button2. Indicator lights3. Button mounting holeRelay WallSwitch Socket settingsWhen connecting Button via , note that Button does not automatically switch between the radio networks of the radio signal extender and the hub. You can assign Button to another hub or ReX manually in the app.Connecting the button to the Ajax security system Prior to initiating connectionOnly users with administrative rights can add a device to the hubIn order to connect a ButtonFor detection and pairing, the Button must be located within the hub radio communication zone (on the single protected object).The connected button will appear in the list of hub devices in the application.Updating the statuses of the device in the list does not depend on the polling time value in the hub settings. Data is updated only by pressing the Button.ReX 1. Follow the hub instructions to install the . Create an account, add a hub to the app, and create at least one room.Ajax application 2. Enter the Ajax app.3. Activate the hub and check your internet connection.4. Ensure that the hub is not in armed mode and is not being updated by checking its status in the app.1. Click on Add Device in the Ajax app.2. Name the device, scan its QR code (located on the package) or enter it manually, select a room and a group (if group mode is enabled).3. Click Add and the countdown will begin.4. Hold the button for 7 seconds. When the Button is added, the LEDs will ash green once.The Button only works with one hub. When connected to a new hub, the button Button stops transmitting commands to the old hub. Note that after being added to the new hub, the Button is not automatically removed from the device list of the old hub. This must be done manually through the Ajax application.StatesButton statuses can be viewed in the device menu:Parameter ValueBattery chargeButton battery charge level. There are two statuses:Operating modeDisplays the operating mode of the button. Two modes are available:Indicator light brightness Displays current brightness level of indicator1. Ajax app Devices ButtonBattery OK Battery lowPanic Controllight:Protection against accidental activationDisplays the selected type of protection against accidental activation:Routed Through ReX Display the status of using the ReX range extenderFirmware Button rmware version IDDevice IDCon gurationYou can adjust the device parameters in the settings section:Disabled (no display)Minimum MaximumOff — protection disabled.Delay when pressing — in order to send alarm you should hold the button down for more than 1.5 seconds.Double-pressing — in order to send alarm you should double-press on the button with a pause of no more than 0.5 seconds.1. Ajax app Devices Button SettingsParameter ValueFirst eld Name of the device, can be changedRoom The choice of the virtual room that the device is assigned toOperating mode Displays the operating mode of the button. Two modes are available:Device user Assigns a panic button user. After assignment, button presses will be displayed as events of the selected userLED brightness This displays the current brightness of the indicator lights:Accidental press protection (available only in panic mode)Displays the selected type of protection against accidental activation:Panic — sends an alarm when pressed Control — controls automation devices by short or long (3 sec) pressingDisabled (no display)MinimumMaximumOff — protection disabled.Alert with a siren if panic button is pressed If active, and are activated after panic button pressingScenarios Opens the menu for creating and con guring scenariosUser Guide Opens the Button user guideUnpair Device Disconnects Button from the hub and deletes its settingsFirmware Button rmware versionID Device IDOperating indicationButton status is indicated with red or green LED indicators.Category Indication EventLinking to security system Green LEDs ash 6 timesThe button is not registered inany security systemLights up green for a fewsecondsAdding a button to the securitysystemCommand delivery indication Lights up green brie yCommand is delivered tosecurity systemLights up red brie yCommand is not delivered tosecurity systemLong press indication in Control mode Blinks green brie yButton recognized thepressing as a long press andsent the correspondingcommand to the hubFeedback Indication (follows the Command Delivery Indication)Lights up green for about halfa second after the commanddelivery indicationThe security system hasreceived and performed thecommandDelay when pressing — in order to send alarmyou should hold the button down for more than1.5 seconds.Double-pressing — in order to send alarm youshould double-press on the button with a pauseof no more than 0.5 seconds.HomeSiren StreetSirenBrie y lights up red after thecommand delivery indication The security system did not perform the commandBattery status(follows Feedback Indication)After the main indication itlights up red and goes outsmoothlyButton battery needs to bereplaced. At the same time,button commands aredelivered to the securitysystem.Use casesPanic ModeAs a panic button, the Button is used to call for security company or help, as well as for emergency noti cation through the app or sirens. In this mode, pressing the Button will raise an alarm regardless of security mode of the system.An alarm if Button is pressed can also in the Ajax security system.Button can be installed on a at surface or carried around. To install on a at surface (for example, under the table), secure the Button with double-sided adhesive tape. To carry the Button on the strap: attach the strap to the Button using the mounting hole in the main body of the Button.Control ModeIn the Control mode, the Button has two pressing options: short and long (the button is pressed for more than 3 seconds). These pressings can trigger the execution of an action by one or more automation devices: Relay, WallSwitch, or Socket.To bind an automation device action to a long or short press of a Button:run a scenario1. Open the and go to the Devices tab.Ajax app2. Select Button in the list of devices and go to settings by clicking the gearicon .3. Select the Control mode in the Button mode section.4. Click the Button to save the changes.5. Go to the Scenarios menu and click Create scenario if you are creating a scenario for the rst time, or Add scenario if scenarios have already been created in the security system.6. Select a pressing option to run the scenario: Short press or Long press.7. Select the automation device to execute the action.pressing the Button.MaintenanceWhen cleaning the key fob body, use cleaners that are suitable for technical maintenance.Never use substances containing alcohol, acetone, gasoline and other active solvents to clean the Button.The pre-installed battery provides up to 5 years of key fob operation in normal use (one press per day). More frequent use may reduce battery life. You can check battery level at any time in the Ajax app.The pre-installed battery is sensitive to low temperatures and if the key fob is cooled signi cantly, the battery level indicator in the app may show incorrectvalues until the key fob becomes warmer.When con guring a scenario for Relay, which is in pulse mode, the Device Action setting is not available. During the scenario execution, this relay will close/open the contacts for a set time. The operating mode and pulse duration are set in the .Relay settings 9. Click Save . The scenario will appear in the list of device scenarios.The battery level value is not updated on a regular basis, but only updates after pressing the button.When the battery has run down, the user will receive a noti cation in the Ajax app, and the LED will steadily light up red and go out each time the button ispressed.Technical Speci cationsNumber of buttons1LED backlight indicating command delivery AvailableProtection against accidental activation Available, in panic modeFrequency band868.0 – 868.6 MHz or 868.7 – 869.2 MHz,depending on the sales regionCompatibilityOperates with , , , featuring OS Malevich 2.7.102 and later Maximum radio signal power Up to 20 mW Radio signal modulation GFSKRadio signal range Up to 1,300 m (without obstacles)Power supply 1 CR2032 battery, 3 VBattery life Up to 5 years (depending on frequency of use)Protection classIP55Operating temperature range From -10°С to +40°СOperating humidity Up to 75%Dimensions 47 х 35 х 13 mm Weight16 gComplete SetBattery ReplacementHub Hub Plus Hub 2ReX 1. Button2. Pre-installed CR2032 batteryWarrantyThe warranty for the products manufactured by the AJAX SYSTEMSMANUFACTURING limited liability company is valid for 2 years after purchase and does not extend to the bundled battery.If the device does not function properly, we recommend that you rst contact the support service as technical issues can be resolved remotely in half of thecases!Technical support: 3. Double-sided tape 4. Quick Start GuideWarranty obligations User agreement********************Need help?In this section you’ll nd detailed manuals and educational videos about all features of Ajax. And in case you need help of a technical specialist, we’re available 24/7.Send request。
button用法
button用法Button用法Button是一个非常常用的UI控件,它通常被用来触发特定的操作或者事件。
使用Button可以使应用程序看起来更加交互和易用。
Button的基本用法很简单。
我们可以使用XML或Java代码来创建Button实例,然后将其添加到界面上。
下面是一个简单的例子:XML代码:```<Buttonandroid:id="@+id/my_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Click me" />```Java代码:```Button myButton = (Button) findViewById(R.id.my_button); myButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// Do something when the button is clicked}});```在这个例子中,我们首先在XML文件中定义了一个Button实例,设置了它的ID、宽度、高度和文本。
然后我们在Java代码中获取了这个Button实例,并为它添加了一个ClickListener,当用户点击这个Button时会触发这个ClickListener,并执行相应的操作。
除了基本用法,Button还有许多高级使用方式。
下面是一些常见的用法:1. 设置Button的样式我们可以通过设置Button的样式来改变它的外观和行为。
Button的样式通常有以下几种:- 普通样式:这是Button的默认样式。
它有一个背景颜色和文本颜色,并且可以被点击。
按钮的英文单词
按钮的英文单词按钮,是一种常用的控制电器元件,常用来接通或断开控制电路(其中电流很小),从而达到控制电动机或其他电气设备运行目的的一种开关。
也称为按键,是一种电闸(或称开关),用来控制机械或程式的某些功能。
那么你知道按钮的英文单词怎么写吗?一起来学习一下吧!按钮的英文单词:button按钮的英文单词:press-button按钮的英文单词:push-button按钮的英文单词例句:1. I know how to darn, and how to sew a button on.我会打补丁,缝纽扣。
2. Information is called up at the push of a button.按一个键信息就会被调出来。
3. The middle button of his uniform jacket was strained over his belly.制服上装中间的纽扣在他的肚子上绷得紧紧的。
4. The autoexposure button is awkwardly placed under the lens release button.自动曝光按钮安装在镜头脱卸按钮下面,十分不便。
5. He pushed a button on the intercom. "Yes?" came a voice.他按了内部对讲机上的一个按钮。
“有什么事吗?”一个声音问道。
6. He reached for the remote control and pressed the "play" button.他伸手拿过遥控器,按下“播放”键。
7. The fuse blew as he pressed the button to start the motor.他按下按钮启动马达的时候保险丝烧断了。
8. Abortion is still one of the hot button issues of US life.堕胎仍是美国人日常生活中的一个敏感议题。
html button if用法
HTML Button if用法一、HTML Button简介HTML Button(按钮)是网页设计中常用的交互元素之一,可以用于触发各种操作或事件。
在HTML中,通过<button>标签可以创建一个按钮。
二、使用HTML Button创建按钮在HTML中,可以使用<button>标签来创建按钮,并通过其属性来指定按钮的样式和行为。
常用的属性有:•type:指定按钮的类型,有submit、reset、button三种取值,默认为submit。
•name:指定按钮的名称,用于表单提交时将按钮的值发送给服务器。
•value:指定按钮的值,用于表单提交时将按钮的值发送给服务器。
•disabled:指定按钮是否禁用,如果设置为disabled,则按钮无法点击。
例如,下面的代码示例展示了一个简单的按钮:<button type="button">Click me!</button>三、通过JavaScript实现Button if逻辑通过JavaScript,我们可以为按钮添加各种逻辑,使其在不同情况下展现不同的行为。
其中,可以使用if语句来判断某种条件是否成立,并在条件成立时执行相应的代码块。
假设我们有一个按钮,点击后会弹出一个提示框,提示用户是否确认执行某个操作。
如果用户点击确认,则执行相应的操作;如果用户点击取消,则不执行操作。
下面是一个实现的示例代码:<button onclick="myFunction()">Click me!</button><script>function myFunction() {if (confirm("Are you sure?")) {alert("You clicked OK!");// 执行操作} else {alert("You clicked Cancel!");// 不执行操作}}</script>在上述代码中,我们使用了confirm()函数显示一个提示框,询问用户是否确认执行操作。
python button用法
python button用法Python中可以使用两种方式来实现按钮(Button)的用法:第一种是在命令行中使用tkinter模块来创建一个图形用户界面(GUI),并在界面中添加按钮。
以下是一个简单的例子:```pythonimport tkinter as tkdef button_click():print("Button clicked!")window = ()button = tk.Button(window, text="Click Me",command=button_click)button.pack()window.mainloop()```在上面的代码中,首先导入了tkinter模块,并创建一个窗口对象window。
然后,使用Button类创建了一个名为button的按钮,设置了按钮上显示的文本为"Click Me",并通过command参数设置按钮点击时执行的函数为button_click。
最后,使用pack方法将按钮放置到窗口中,并通过调用mainloop方法进入窗口的事件循环。
当用户点击按钮时,会触发button_click函数,该函数会在命令行中打印出"Button clicked!"。
第二种是使用各种Python图形界面库中的按钮控件。
例如,在使用PyQt5库创建图形用户界面时,可以使用QPushButton 类来创建按钮。
以下是一个示例:```pythonfrom PyQt5.QtWidgets import QApplication, QWidget, QPushButtonimport sysdef button_click():print("Button clicked!")app = QApplication(sys.argv)window = QWidget()button = QPushButton("Click Me", window)button.clicked.connect(button_click)window.show()sys.exit(app.exec_())```在上面的代码中,首先导入了PyQt5库中的一些模块和类。
button调用函数
button调用函数button调用函数是指当用户点击按钮时,按钮将触发特定的函数或事件,以便对网页进行动态操作。
因此,button与函数之间是紧密联系的。
button调用函数的使用是非常广泛的,可以通过button调用函数来实现许多常见的功能,例如对表单数据进行验证、打开或关闭页面元素、调用AJAX请求、切换页面主题等等。
对于开发Web应用程序而言,button调用函数是非常重要的组成部分。
要使用button调用函数,我们需要定义一个JavaScript函数,该函数可以被调用,以便在button被点击时执行。
下面是一个简单的例子,说明如何使用button 调用函数:HTML<!DOCTYPE html><html><head><title>Button调用函数</title></head><body><button onclick="myFunction()">点击按钮</button><script>function myFunction() {alert("按钮被点击了!");}</script></body></html>在上面的例子中,定义了一个JavaScript函数myFunction(),当用户点击button时,该函数将会被调用。
函数使用alert()方法,在屏幕上显示一个消息。
为了使button调用函数更加灵活,我们可以将函数分离成单独的JavaScript 文件。
这样,我们可以在多个页面中使用该函数,并避免代码重复。
例如,我们可以定义一个名为myFunctions.js的文件,其中包含具有相同名称的函数myFunction(),然后在需要使用该函数的页面中引入该文件即可。
总的来说,button调用函数是Web开发中非常重要的一部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
给对话框上的按钮添加背景颜色,这个是我在网上找的一个方法。
我实现了,但是感觉还是有一点小问题,就是按钮不是一运行的时候就出现设置后的颜色,得点击一下才会出现颜色。
不知道这是怎么回事,希望看到的人如果结局了这个问题给我留个言。
下面就贴出步骤:第一步:加入一个新类,类名:CMyButton,基类:CButton。
在头文件MyButton.h 中加入以下变量和函数定义:private:int m_Style; //按钮形状(0-正常,1-当前,2-按下,3-锁定)BOOL b_InRect; //鼠标进入标志CString m_strText; //按钮文字COLORREF m_ForeColor; //文本颜色COLORREF m_BackColor; //背景色COLORREF m_LockForeColor; //锁定按钮的文字颜色CRect m_ButRect; //按钮尺寸CFont* p_Font; //字体void DrawButton(CDC *pDC); //画正常的按钮// 接口函数public:void SetText(CString str);void SetForeColor(COLORREF color); //设置文本颜色void SetBkColor(COLORREF color); //设置背景颜色void SetTextFont(int FontHight,LPCTSTR FontName); //设置字体第二步:在MyButton.cpp 的构造函数中初始化变量:CMyButton::CMyButton(){m_Style = 0; //按钮形状风格b_InRect = false; //鼠标进入标志m_strText = _T(""); //按钮文字(使用默认文字)m_ForeColor = RGB(0,0,0); //文字颜色(黑色)m_BackColor = RGB(243,243,243); //背景色(灰白色)m_LockForeColor = GetSysColor(COLOR_GRAYTEXT); //锁定按钮的文字颜色p_Font = NULL; //字体指针}用ClassWizard添加下列消息函数:PreSubclassWindow();DrawItem();onMouseMove();OnLButtonDown();OnLButtonUp();在各函数内加入代码:void CMyButton::PreSubclassWindow(){ModifyStyle( 0, BS_OWNERDRAW ); //设置按钮属性为自画式CButton::PreSubclassWindow();}PreSubclassWindow()在按钮创建前自动执行,所以我们可以在其中做一些初始工作。
这里我只做了一项工作,就是为按钮设置属性为“自绘”式,这样,用户在添加按钮后,就不需设置“Owner draw”属性了。
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){CDC *pDC = CDC::FromHandle( lpDrawItemStruct->hDC );m_ButRect = lpDrawItemStruct->rcItem; //获取按钮尺寸if( m_strText.IsEmpty() )GetWindowText( m_strText ); //获取按钮文本int nSavedDC = pDC->SaveDC();VERIFY( pDC );DrawButton( pDC ); //绘制按钮pDC->RestoreDC( nSavedDC );}DrawItem()函数是一个关键函数,按钮的绘制工作就在这里进行,它的作用相当于对话框中的OnPaint()函数和视图中的OnDraw()函数。
这里我做了三项工作:获取按钮尺寸、获取按钮文本、绘制按钮。
其中绘制工作在自定义函数DrawButton()中完成。
以下就是绘制过程:void CMyButton::DrawButton(CDC *pDC){//调整状态if( m_Style==3 ) m_Style = 0;if( GetStyle() & WS_DISABLED )m_Style = 3; //禁止状态//根据状态调整边框颜色和文字颜色COLORREF bColor, fColor; //bColor为边框颜色,fColor为文字颜色switch( m_Style )case 0: bColor = RGB(192,192,192); fColor = m_ForeColor; break; //正常按钮case 1: bColor = RGB(255,255,255); fColor = m_ForeColor; break; //鼠标进入时按钮case 2: bColor = RGB(192,192,192); fColor = m_ForeColor; break; //按下的按钮case 3: bColor = m_BackColor; fColor = m_LockForeColor; break; //锁定的按钮}//绘制按钮背景CBrush Brush;Brush.CreateSolidBrush( m_BackColor ); //背景刷pDC->SelectObject( &Brush );CPen Pen;Pen.CreatePen(PS_SOLID, 1, bColor );pDC->SelectObject( &Pen );pDC->RoundRect(&m_ButRect,CPoint(5,5)); //画圆角矩形//绘制按钮按下时的边框if( m_Style!=2 ){CRect Rect;Rect.SetRect( m_ButRect.left+2, m_ButRect.top+1, m_ButRect.right, m_ButRect.bottom ); pDC->DrawEdge( &Rect, BDR_RAISEDINNER, BF_RECT ); //画边框}//绘制按钮文字pDC->SetTextColor( fColor ); //画文字pDC->SetBkMode( TRANSPARENT );pDC->DrawText( m_strText, &m_ButRect, DT_SINGLELINE | DT_CENTERDT_VCENTER | DT_END_ELLIPSIS);//绘制拥有焦点按钮的虚线框if( GetFocus()==this ){CRect Rect;Rect.SetRect( m_ButRect.left+3, m_ButRect.top+2, m_ButRect.right-3, m_ButRect.bottom-2 ); pDC->DrawFocusRect( &Rect ); //画拥有焦点的虚线框}}变量m_Style 表征当前按钮状态,它的取值为:0-正常,1-当前,2-按下,3-锁定。
不同状态下按钮的边框颜色和文字颜色有所不同。
m_Style 的值在鼠标响应函数中进行修改。
绘制工作主要利用CDC类的绘图函数完成,主要注意在m_Style 不同取值下表现出来的差别。
void CMyButton::onMouseMove(UINT nFlags, CPoint point){if( !b_InRect || GetCapture()!=this ) //鼠标进入按钮b_InRect = true; //设置进入标志SetCapture(); //捕获鼠标m_Style = 1; //设置按钮状态Invalidate(); //重绘按钮}else{if ( !m_ButRect.PtInRect(point) ) //鼠标离开按钮{b_InRect = false; //清除进入标志ReleaseCapture(); //释放捕获的鼠标m_Style = 0; //设置按钮状态Invalidate(); //重绘按钮}}CButton::onMouseMove(nFlags, point);}onMouseMove()函数是鼠标移动消息函数,用于判定当前鼠标指针是否在按钮上。
b_InRect 是个标志,为true表示鼠标指针进入了按钮区域,此时要捕获鼠标,让鼠标命令传送给按钮。
当鼠标指针离开按钮时,要清除b_InRect标志,并且释放捕获的鼠标,让其它窗口可以接收鼠标命令。
Invalidate()函数用于更新按钮,它会自动调用DrawItem()函数重新绘制按钮。
设置条件的目的是仅在鼠标指针进入按钮和离开按钮时更新按钮,这样可以防止鼠标在按钮上移动时发生闪烁。
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point){m_Style = 2;Invalidate(); //重绘按钮CButton::OnLButtonDown(nFlags, point);}OnLButtonDown()函数是单击鼠标左键时的消息函数。
这里只是重新绘制按钮,具体的单击响应应该在拥有按钮的对话框或视图中进行。
void CMyButton::OnLButtonUp(UINT nFlags, CPoint point){m_Style = 1;Invalidate(); //重绘按钮CButton::OnLButtonUp(nFlags, point);}OnLButtonUp()函数是单击鼠标左键后弹起时的消息函数。
这里也只是重绘按钮,这样能使按钮在按下和弹起时有所不同,使按钮看上去有动态效果。
接口函数是用CMyButton类定义的按钮修改颜色、字体和按钮文字的接口,由以下函数组成://设置按钮文本void CMyButton::SetText(CString str){m_strText = _T("");SetWindowText(str);}//设置文本颜色void CMyButton::SetForeColor(COLORREF color){m_ForeColor = color;Invalidate();}//设置背景颜色void CMyButton::SetBkColor(COLORREF color){m_BackColor = color;Invalidate();}//设置字体(字体高度、字体名)void CMyButton::SetTextFont(int FontHight,LPCTSTR FontName){if ( p_Font ) delete p_Font; //删除旧字体p_Font = new CFont;p_Font->CreatePointFont( FontHight, FontName ); //创建新字体SetFont( p_Font ); //设置字体}由于新字体由new 生成,必须显式回收,这项工作可以在CMyButton类的析构函数中进行:CMyButton::~CMyButton(){if ( p_Font ) delete p_Font; //删除字体}第三步:使用时,先在对话框中放置好按钮,再用ClassWizard 为按钮添加控制变量,并且将变量的类型设置为CMyButton。