当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 给她取名叫作MLine控件。
 

 

 ·基于完成端口的httpproxy    »显示摘要«
    摘要:最近在windows下基于完成端口写了个httpproxy。准备在有空的时候把 socks也加上去。总结如下: 1。完成端口是一种windows的内核对象,借鉴了threadpool的做法。 当然具体在windows的实现我们不得而知。 2。由于是在内核级管理。效率要高于在bsd sockset的标准写法: 即是不断的select 然后处理数据。 需要代码的请在这里下载:http://hotlog.spymac.net vc2003/win2000下编译通......
    摘要:在win2000/xp的正常模式下,我们可以用注册表的方式: 在hkey_local_machine\software\microsoft\windows nt\currentversion\winlogon 添加自己的gina dll来实现windows的登陆控制。但在安全模式下,windows的winlogon。exe不会调用注册表 中指定的gina dll。而是使用默认的msgina.dll 来登录。我们可以变通一下,按如下的步骤来实现安全模式的gi......


VB6.0自制Line控件时实现X1,Y1,X2,Y2属性

line控件本来是最简单的一个控件,但它太简单了,以至于不提供我们想要的一些事件,为了增强它的功能,我自己制作了一个line控件,还

制作控件的方法请参看"msdn - visual basic 文档 - 使用visual basic -部件工具指南 - 创建activex部件"中的"创建一个activex控件"与" 【相关文章:自定义 XML 文件在 TreeView

给她取名叫作mline控件。 【扩展阅读:关于AnsiSting的使用大全

【扩展信息:ASP.NET用户控件返回事件的方法

建立activex控件"部分。

vb自带的line控件有x1,x2,y1,y2四个属性,没有left,top,width,height这四个属性,通过调整x1-y2四个属性的值,来改变线条的位置与形状

。但,我们的mline控件中只有ltwh这四个属性,所以mline控件的关键在于如何把ltwh四个属性跟x1-y2四个属性联系起来。

很显然,如果mline控件中的线条是从左上角到右下角的话,那么:

a1=left : b1=top : a2=left+width : b2=top+height

这里我用(a1,b1)表示左上角的坐标,(a2,b2)表示右上角的坐标,这样我就可以通过a1-b2来确定控件的区域了,但并不能确定直线的形状,也

就是说直线是撇倾斜还是捺倾斜,通过a1-b2无法确定,我们需要一个标志变量来记录这个倾斜值,下面会说到。

好了,a1-b2显然与ltwh是一一对应的,我们可以写出:

left=a1 : top=b1 : wdith=a2-a1 : height=b2-b1

a1=min(x1,x2) : b1=min(y1,y2) : a2=max(x1,x2) : b2=max(y1,y2)

通过上面的关系,我们把x1-y2与ltwh联系起来了。

那么你去做吧,基本上这个线条可以画出来,但不会太精确,在线条接近水平或垂直的时候就会有误差了,出现误差的原因是,控件有一个最

小宽度与最小高度!你可以随便建立一个exe工程观察一下常用的控件,他们的height/width最小只能设置到15或者更大一些,而usercontrol

,也就是我们的控件,其height/width最小只能设置到30,所以如果没有考虑到这个因素,做出来的mline控件总会出现误差的,如果你把做出

来的mline控件,以(x1,y1)为圆心,让(x2,y2)绕着它画圆,你会发现线条的一些细微变化,这种变化是不能容忍的。

所以mline控件的重点是要理解这个控件的真实形状,它不仅仅是一个长方形的区域内做一条对角线,而是这样的一个样子:

在它的区域当中,有一片冗余区域,我们不能在这里画线,理由是这个冗余区域正是这个控件的最小区域。这个冗余区域我设置它为一个空心

矩形,它与mline控件的整个区域是重合的,它中间的空心区域才是我们画线的地方。空心区域应该是由最小宽度与最小高度决定的,让minwid

th表示最小宽度,minheight表示最小高度,那么空心区域与控件区域的左边界=minwidth/2,右边界=minwidth/2,上边界=minheight/2,下边

界=minheight/2,你应该可以想象出来这个样子。


...   下一页
 ·走迷宫c#版(一)    »显示摘要«
    摘要://迷宫类相关 using system;using system.drawing;using system.drawing.drawing2d;using system.collections; namespace mazedemo{ /// <summary> /// 迷宫类 /// </summary> public class cmaze { bool[,] mg; //地图格子 stack stack; //堆栈 poin......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE