【游戏ylc源码免费】【ceph-mds源码分析】【通达信源码改写】setparent源码

来源:xplico源码分析

1.请问如何让外部程序的窗体在我的VB程序窗体上面显示?
2.nestable lists 如何禁止拖动
3.让一个应用程序在指定的窗体中运行
4.如何在XML中使用自定义Animation动画类

setparent源码

请问如何让外部程序的窗体在我的VB程序窗体上面显示?

       '添加控件Command1,以下是代码

       'API函数: 设置窗口的新父窗口

       PrivateDeclare Function SetParent Lib "user" ( _

        ByVal hWndChild As Long, _

       Private Sub Command1_Click()

       Dim hwnd As Long, hWndNewParent As Long

       'hwnd = 你要设置的窗口句柄,句柄可以用API或者是APY++获得

       'hWndNewParent = 你要设置的父窗口句柄,句柄可以用API或者是APY++获得

       '设置hWndNewParent 为 hwnd 的父窗口

       SetParent hwnd, hWndNewParent

       End Sub

nestable lists 如何禁止拖动

       我改了下源码,加了个allowDrag的属性

       $("#showModuleInfo").nestable({ allowDrag:false}) //禁止拖拽

       加了个refresh的方法,主要用在自己append节点的时候,前面的+-button能刷出来

       $("#moduleInfo").nestable("refresh");//

       这里传不了附件,把改动截图贴上来了,自己对着jquery.nestable.js改一下吧,框起来的是我动过的,没框的都是原来的

       var defaults = {

       listNodeName: 'ol',

       itemNodeName: 'li',

       rootClass: 'dd',

       listClass: 'dd-list',

       itemClass: 'dd-item',

       dragClass: 'dd-dragel',

       handleClass: 'dd-handle',

       collapsedClass: 'dd-collapsed',

       placeClass: 'dd-placeholder',

       noDragClass: 'dd-nodrag',

       emptyClass: 'dd-empty',

       expandBtnHTML: '<button data-action="expand" type="button">Expand</button>',

       collapseBtnHTML: '<button data-action="collapse" type="button">Collapse</button>',

       group: 0,

       maxDepth: 5,

       threshold: ,

       allowDrag:true

       };

       ---------------------------------------

       if(this.options.allowDrag){

       list.el.on('mousedown', onStartEvent);

       list.w.on('mousemove', onMoveEvent);

       list.w.on('mouseup', onEndEvent);

       }

       --------------------------------------

       refresh:function(){

       var list=this;

       list.el.find(list.options.itemNodeName).each(function() {

       $(this).children('[data-action]').remove();

       if($(this).find(list.options.listNodeName).children().length>0){

       list.setParent($(this));

       }else{

       list.unsetParent($(this));

       }

       });

       },

让一个应用程序在指定的窗体中运行

       以计算器程序为例,建Command1。游戏ylc源码免费代码如下 。ceph-mds源码分析

       =====================

       Option Explicit

       Private Declare Function SetParent Lib "user" (ByVal hWndChild As Long,通达信源码改写 ByVal hWndNewParent As Long) As Long

       Private Declare Function FindWindow Lib "user" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

       Private Sub Command1_Click()

       Shell "calc"

       SetParent FindWindow("SciCalc", vbNullString), hWnd

       End Sub

如何在XML中使用自定义Animation动画类

       åœ¨å®‰å“应用的动画开发中,可能SDK中自带的补间动画不能满足应用的需求,需要在Java代码中自定义一些动画类,当然都是继承自Animation类。实现之后,我们一般直接在代码中使用,类似下面这样:CustomAnimationcustomAnimation=newCustomAnimation();customAnimation.setDuration();customAnimation.setFillAfter(true);effectView.startAnimation(customAnimation);当View同时要应用像Scale,Alpha这样的补间动画时,你就需要多添加类似下面的代码:CustomAnimationcustomAnimation=newCustomAnimation();customAnimation.setDuration();customAnimation.setFillAfter(true);AnimationscaleAnimation=newScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);AnimationalphaAnimation=newAlphaAnimation(0.1f,1.0f);scaleAnimation.setDuration();alphaAnimation.setDuration();AnimationSetset=newAnimationSet(true);set.addAnimation(customAnimation);set.addAnimation(scaleAnimation);set.addAnimation(alphaAnimation);set.setFillAfter(true);set.setFillEnabled(true);effectView.startAnimation(set);如果直接在xml中把所需的所有补间动画,包括自定义动画类放到一个集合,事情看起来就没那么复杂。在xml定义好动画集有两个好处:使用动画时需要更少的Java代码,整体上看上去更干净在xml中定义,各个动画属性一目了然也更集中,方便阅读与维护既然有这样的好处,我们就开始干吧。首先在xml中像下面这样定义一个动画集:R.anim.my_anim_setmyapp:customProp2=""myapp:customProp3="%"android:duration=""android:fillAfter="true"/>然后,我们按照常理来,在Java代码中这样来加载我们定义的xml动画集:AnimationSetset=(AnimationSet)AnimationUtils.loadAnimation(this,R.anim.my_anim_set);effectView.startAnimation(set);但是,抱歉!上面的代码是不正确执行,运行起来程序会直接终止。那什么原因呢?查看AnimationUtils.loadAnimation源代码我们知道,在其从xml载入动画类的时候,只认alpha、scale、rotate、translate这几个SDK自带的动画类,而我们写入的自定义动画类CustomAnimation会导致其报Unknownanimationname的异常。官方SDK也没有提供解决这个问题的其他API方法,那么怎么解决呢?很简单,只需在原有的AnimationUtils.loadAnimation源码上改动一行,从ClassLoader载入自定义动画类即可。将其源码拷贝过来,实现一个自己的loadAnimation方法,如下:OptAnimationLoader.javapublicclassOptAnimationLoader{ publicstaticAnimationloadAnimation(Contextcontext,intid)throwsResources.NotFoundException{ XmlResourceParserparser=null;try{ parser=context.getResources().getAnimation(id);returncreateAnimationFromXml(context,parser);}catch(XmlPullParserExceptionex){ Resources.NotFoundExceptionrnf=newResources.NotFoundException("Can'tloadanimationresourceID#0x"+Integer.toHexString(id));rnf.initCause(ex);throwrnf;}catch(IOExceptionex){ Resources.NotFoundExceptionrnf=newResources.NotFoundException("Can'tloadanimationresourceID#0x"+Integer.toHexString(id));rnf.initCause(ex);throwrnf;}finally{ if(parser!=null)parser.close();}}privatestaticAnimationcreateAnimationFromXml(Contextc,XmlPullParserparser)throwsXmlPullParserException,IOException{ returncreateAnimationFromXml(c,parser,null,Xml.asAttributeSet(parser));}privatestaticAnimationcreateAnimationFromXml(Contextc,XmlPullParserparser,AnimationSetparent,AttributeSetattrs)throwsXmlPullParserException,IOException{ Animationanim=null;//Makesureweareonastarttag.inttype;intdepth=parser.getDepth();while(((type=parser.next())!=XmlPullParser.END_TAG||parser.getDepth()>depth)&&type!=XmlPullParser.END_DOCUMENT){ if(type!=XmlPullParser.START_TAG){ continue;}Stringname=parser.getName();if(name.equals("set")){ anim=newAnimationSet(c,attrs);createAnimationFromXml(c,parser,(AnimationSet)anim,attrs);}elseif(name.equals("alpha")){ anim=newAlphaAnimation(c,attrs);}elseif(name.equals("scale")){ anim=newScaleAnimation(c,attrs);}elseif(name.equals("rotate")){ anim=newRotateAnimation(c,attrs);}elseif(name.equals("translate")){ anim=newTranslateAnimation(c,attrs);}else{ try{ anim=(Animation)Class.forName(name).getConstructor(Context.class,AttributeSet.class).newInstance(c,attrs);}catch(Exceptionte){ thrownewRuntimeException("Unknownanimationname:"+parser.getName()+"error:"+te.getMessage());}}if(parent!=null){ parent.addAnimation(anim);}}returnanim;}}这样,使用OptAnimationLoader.loadAnimation方法就可以从xml中载入包含自定义动画的动画集了。

文章所属分类:焦点频道,点击进入>>