在VB6.0时代,VB还不是内嵌支持鼠标滚轮,需要用API将鼠标的WM_MOUSEWHEEL消息发送到控件上来响应滚动事件。这要做通常麻烦,而且代码不容易控制。

     今天我在.Net下研究,发现.Net的控件本身已经支持了MouseWheel事件。但是,又有了问题,既然默认可以响应鼠标滚轮事件了,那我如果我想禁用就比较麻烦了,也就是使控件对鼠标滚轮滚动不作响应。差了MSDN,其实微软早就设计好了一个类 HandledMouseEventArgs ,定义如下

 

Public Class HandledMouseEventArgs

          Inherits System.Windows.Forms.MouseEventArgs

     成员属于: System.Windows.Forms

摘要:

允许自定义控件防止将 System.Windows.Forms.Control.MouseWheel 事件发送到它的父容器。

     这个类继承于MouseEventArgs,也就是我可以将鼠标事件响应的参数 e 赋予它,然后有这个类的对象来将事件句柄禁用。示例代码如下:

 

  Private Sub Form1_MouseWheel( _

ByVal sender As Object, _

ByVal e As System.Windows.Forms.MouseEventArgs) _

Handles Me.MouseWheel

     Dim wm As HandledMouseEventArgs = e

     wm.Handled = True

  End Sub

 

posted @ 2009-05-19 23:38 小MM 阅读(809) 评论(3) 编辑
本来准备抛弃的小工具,但是今晚看别人做好的,自己也做一下吧可以设置多组计时哦,而且很特别的是 当你关闭了浏览器以后,下次再打开浏览器,上次没有记完的将继续计时,当然会减去你关掉浏览器的那段时间了哦,很贴心吧

其实这里面有个很大的bug,暂时不想解决,不太耽误使用

http://www.google.com/ig/adde?synd=open&source=ggyp&moduleurl=http://google-sample.googlecode.com/files/timers.xml 


posted @ 2009-05-09 14:44 小MM 阅读(226) 评论(0) 编辑

嵌套函数中的this指向的对象

 

我们通过一个测试来举出所有的情况,然后用自己的debug方法输出结果来判断嵌套时的this指向的对象是自己还是父对象

下面是这个测试的前提html和css代码,用来显示测试结果:

css和html代码

之后是一些增加的系统函数,用来更方便的实现某些测试功能:

 

 

基础代码

 

为了测试在不同情况下嵌套函数(对象)中this所指的对象,我们写了如下的代码(在代码中已经标识出各种情况的分析结果):

 

测试代码

 

总结:

      javascript中的函数是顶级对象,每次创建一个函数的时候我们就会为其创建一个运行环境,这个环境中包含一个作用域链属性,它可以指向外部的对象来实现外部变量对于函数内部是可见的(具体在其他文章中讨论闭包的时候讨论),所以在javascript中函数是可以嵌套的,也就是说在定义了一个函数后,在函数内部仍然可以定义一个函数,而且外部函数内定义的变量在内部函数中是可见的(在php中则是不可见的),通过环境中的作用域链,内部函数在初始化的时候顺着作用域链可以找到其外部任何层级的函数(对象)中的变量.在完成一系列初始化工作后,将给当前的this赋值,this属性指向运行环境所指向的对象本身,所以在全局环境中我们也可以使用this关键字,这时它指向全局对象.

      我们这里考虑的是javascript中this指针指向的对象,当在某个函数内嵌套一个函数的时候,有好几种方法,可以将内部函数直接复制给外部函数对象的一个属性,也可以单独创建一个函数.这些不同的方法中 在内部对象中使用this指针所指向的对象是不同的.通过上面的例子可以看到不同的情况下this所指向

      上面的所有情况其实分为两大种:

      第一种是在外部函数的内部直接定义一个对象,这个对象不作为外部对象的属性出现:

            这种情况下内部函数中的this指向此内部函数,这是正常创建函数的方法,所以会为内部函数创建自己的运行环境,this指向这个运行环境

      第二种情况是定义一个函数,然后赋给外部对象的一个属性.

            这种情况下并不会给这个内部函数创建运行环境,而是以外部对象的运行环境作为当前的运行环境,所以这时候this指向的是外部的对象.

      这是今天偶尔想到的一个问题,最近在从原理上分析javascript,但是有很多地方晦涩难懂,不过javascript的确是门很有意思的语言,至少以后可以在任何电脑上写代码了,只要一个浏览器,完成所有的工作^^^^^^再说,javascript的面向对象其实看起来简单,但是还是有很多内涵的,深入研究的话,还是很充实的.

posted @ 2009-05-07 21:56 小MM 阅读(1403) 评论(6) 编辑
摘要: 一直想写一篇关于Javascript面向对象的文章,最近终于动工了,本来以为不会写的很长,可是后来发现有很多东西要写,大家先看着这前面的一部分吧,后面有更多的高级特性陆续跟进中,放心,绝对不是太监贴啊,对Javascript对象不太了解或者没有了解的人可以仔细看看哦,有错误之处大家多多指正哦,本人水平有限 (1)为什么要面向对象在十年前或者也许更晚的时候,javascript都是一种被人...阅读全文
posted @ 2009-05-05 09:30 小MM 阅读(2208) 评论(32) 编辑

二进制对于php来说是一个很偏的东西,因为php中对于二进制的支持是非常有限的,今天在一个php群组里讨论一个问题讨论了一下午也没讨论出结果来,现在总结一下,不知道我想的对不对,因为本来还觉得自己挺理解的,后来讨论多了,连二进制是什么都糊涂了.

问题:群里有个朋友接受一个项目,以前是用java写的,里面有很多对二进制文件的操作,包括图片作为二进制存储,然后在这个二进制文件中加入一些用户输入的字符串的二进制格式,就是把图片和字符串组合到一个二进制文件中,我们卡在了怎么把字符串写入到二进制文件中的问题这里.

 1 <?php
 2 $header_str="abc123";
 3 
 4 function asc2bin ($temp) { 
 5   $len = strlen($temp); 
 6   for ($i=0$i<$len$i++$data.=sprintf("%02x",ord(substr($temp,$i,1))); 
 7   return $data
 8 }
 9 
10 $aa = asc2bin($header_str);
11 
12 
13 $content_2=pack('H*', $aa);
14 
15 $handle = fopen ("aaaa.bin", "wb");
16 fwrite($handle, $content_2);
17 fclose($handle);
18 
19 ?>

下面是我的最终代码,它将一个abc123的字符串作为二进制流写进二进制文件 aaaa.bin中,里面用到了pack函数,这个函数可以将php的内置类型转换成二进制格式,它和unpack配套,后者可以讲二进制转换成php的内置类型.

二者的用法如下:

Code

上面是用法,但是在我们的讨论中遇到了问题,归根结底就是说 二进制文件有没有可能在记事本里显示成不是乱码的形式呢?群上很多人说二进制文件在记事本里查看就应该是乱码,我一开始也深信不移,所以对自己的程序也没有了信心,因为我这个二进制文件虽然在高级文本处理工具里查看,十六进制形式的确是正确的,可是在记事本中竟然不会显示乱码,而是显示"abc123",我开始想我应该搞错了,我应该把字符串直接写进二进制文件中了,而不是写的二进制流.

现在我回来想了想,突然想到二进制文件就一定是乱码了么?英文字母就是以字节编码的,一个英文字母占一字节,8位,我把一个字符串的二进制写入一个二进制文件后,在记事本中当然会显示文本啦,因为记事本自动解析二进制,然后转换成字符串的格式了,我觉得我上面的程序其实是正确的.

其实我也不敢确认,二进制文件是个很复杂的概念,不同的二进制文件有着不同的结构,对于二进制的了解太少了,群上都没有一个能说清楚二进制文件到底是什么,怎么向二进制文件写入字符串就更别提了.

这里搞.NET的人多,大家应该都对二进制有概念吧,急问高手,我这样写二进制文件对还是不对啊,不问代码,而是字符串的二进制形式写到文件后,显示的是乱码还是字符串本身啊,望高手解答.

posted @ 2009-05-05 00:30 小MM 阅读(2855) 评论(8) 编辑
摘要: 关于mvc 这里不详细讲解何为MVC模式,只是简单介绍,关于mvc的具体信息可以去网络上找寻,mvc模式在我理解来它将一个项目分解成三部分,分别是Model(模型),View(视图),Controller(控制器),这三个单词的缩写组合即为MVC.MVC是一种普遍的软件敏捷开发模式,在许多领域特别是桌面编程领域早已经得到了广泛的应用,然而在像php一样的脚本语言中比较难以实现,特别是几年前在脚本语言中很难看到mvc的实现,但是今年随着众多框架的涌现,mvc在各个框架中得到了初步实现,其他框架中的实现方式暂且不提,这里只是介绍codeigniter是如何实现mvc的.阅读全文
posted @ 2009-05-04 00:56 小MM 阅读(2187) 评论(0) 编辑
摘要: 最近这几天决定看 ci框架的源代码的,因为它是轻量级的,代码文件的结构比较清晰,又index.php作为入口,在codeigniter.php文件中加载所有的基础类,于是我挨个类滴看下去,并且在看的时候分析了每一步关键的进程,而且对原来的英文注释进行了翻译,现在主要文件已经翻译完成,稍候会翻译并分析一些其他的重要的类,敬请期待这里的是 它的详细的执行过程,从入口到最后结束,进行了完整的记录,大家先...阅读全文
posted @ 2009-05-02 00:07 小MM 阅读(2305) 评论(7) 编辑
摘要: 呵呵,在网上找的代码,然后加上自己的几个函数,包括随机函数(产生随机颜色,每次点击按钮颜色都不一样哦),添加样式等如果有不认识的汉字,复制进来,然后就可以转换哦添加地址http://www.google.com/ig/adde?synd=open&source=ggyp&moduleurl=google-sample.googlecode.com/files/pinyin.xml可...阅读全文
posted @ 2009-04-27 22:13 小MM 阅读(342) 评论(0) 编辑
摘要: 在小工具中维护状态(在一个浏览器里同时登陆两个账号同时进行操作的实现)版权声明本博客(小MM)所有文章均为原创,如果你对本博客的文章感兴趣,可以留下你的QQ或者加本人的QQ:676588498,如果转载本博客的文章,请注明出处,并附加说明和连接(http://www.cnblogs.com/mier),谢谢支持哦     今天翻出那本花了160大洋从新华书店...阅读全文
posted @ 2009-04-27 19:05 小MM 阅读(1956) 评论(10) 编辑
摘要: 出个排序题目:$data=[1,1,1,1,2,2,2,2,5,5,5,8,8,8,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4]怎么把值为1,2,3,4的数据分成4个数组如:$data1[1]=[1,1,1,1]$data1[2]=[2,2,2,2,2,2,2]$data1[3]=[5,5,5]$data1[4]=[8,8,8]数据上限不定的时候怎么写?就是说不...阅读全文
posted @ 2009-04-27 16:27 小MM 阅读(1614) 评论(31) 编辑