当前搜索:

类的继承

在软件设计里,代码的复用和代码稳定性,一直是软件开发的重要目标之一,因为只有这样才能积累各种基础组件,以及维护以前做过的工作。从复用的特性来说,就是利用以前做过的工作,比如就像硬件里的IC一样,不需要知道它是怎么样实现的,只要使用它就行了。因而软件也需要有这种IC,在代码层次里的IC,以前看来只是用函数的方式复用,或者只是数据结构的复用。当迈进面向对象编程时代时,自然而然地想到就使用类来复用了,这...
阅读(1473) 评论(0)

每个窗口单独处理消息的例子源码

整个窗口使用消息类重新写的源码如下:#windows应用程序 #使用类来描述 #开发人员:蔡军生(QQ:9073204) 深圳 2014-8-24 from ctypes import * from ctypes.wintypes import * WS_EX_APPWINDOW = 0x40000 WS_OVERLAPPEDWINDOW = 0xcf0000 WS_CAPTION = 0x...
阅读(1573) 评论(0)

窗口消息处理对象的传递

在前面已经定义好窗口的消息处理类,虽然拥有处理能力了,但还没有放到回调函数里进行相应的调用,那还是达不到目标,还需要下面两个细节的处理,才可以嵌入到消息处理过程里。我们来顺着消息类的传递路径来进行分析它的具体过程,这样理解起来会更顺畅一些,更符常人的思维。具体的过程如下图所示:从上图可以看到,使用Controller类来创建窗口处理消息的实例对象ctrl,然后把它传送给WinMaker的实例对象,...
阅读(1235) 评论(0)

窗口的消息处理

我们知道一个应用程序一般都不是只有一个窗口组成的,往往是多窗口组成的,比如一个对话框的窗口上有一个按钮,这里对话框是一个窗口,按钮也是一个窗口。如果一个对话框上有100个按钮,就是100个窗口,这样句柄会比较多。因而出现了DirectUI的设计方法,所有按钮和主窗口都是同一个窗口,采用分不同区域来绘画而成。这里就遇到了一个问题,每个窗口是独立存在的,但在前面的例子里,可以看到每个窗口都是调用PyW...
阅读(1554) 评论(0)

窗口显示类

窗口在前面已经注册,并且已经创建出来了,但这时这个窗口并不能出现在我们的眼前,又是什么原因呢?哦,还不显示出来,原来是有原因的,就是窗口有多种状态,窗口可以隐藏、普通显示、最大化显示、最小化显示等。并且创建出来时,不立即显示,也是可以方便一性地创建很多很多窗口,最后才一次性地显示出来;另外创建窗口之后在系统看来窗口已经是可用的,这时可以先在窗口上绘图,当完成时再一次性显示出来,也避免窗口不断地刷新...
阅读(1216) 评论(0)

窗口创建类

在前面已经学习怎么样把注册窗口的功能封装成类的形式,接着下来就是创建窗口的功能,而这部分功能又是怎么样编写才是最合适的呢,以便后面所有开发工作都可以复用这些代码。我们来仔细地分析一下窗口上主要有什么东西是可变的,什么东西不变的,原则上就是把可变的东西变成通过函数方式来改变,不变的东西放在类内部,这样减少类的使用者在细节上考虑的问题。目前来看,一个窗口最容易变化的就两样东西:窗口类型,指明这个窗口是...
阅读(1311) 评论(0)

类的成员

类的成员变量在Python里描述数据结构是使用类成员变量的方式,从上面的例子可以看到这样描述:self.wndClass = WNDCLASSEX()这行代码是写在类的构造函数里,通过使用类自身对象self来给类添加成员变量wndClass 。由于在Python语言里没有声明,每增加一个类成员变量,就是通过赋值的方式产生。不过,要注意的是Python语言里的成员变量是可以动态添加的,不但可以在构造...
阅读(1299) 评论(0)

类的构造函数/类的析构函数

类的构造函数Python类的构造函数是__init__,它与其它函数的区别,首先是通过前面和后面带两个双下划线来跟别的函数名称进行区分。它的格式如下:def __init__(self, 参数列表):def是定义函数的关键字,__init__是构造函数的名称,self是类本身的参数,用来区分那些函数是属于类。最后的参数列表是可有可无的。构造函数主要用来初始化成员变量和分配资源,它是一个类旦生后立即...
阅读(1338) 评论(0)

窗口类型注册类

从前面的窗口程序可以看到,这个程序主要做了三件事情,第一件是注册窗口,第二件是创建窗口,第三件是显示窗口。从程序的代码上,很容易就看出来每个函数是在做什么事情,这典型是基于函数式的编程,行云如流水般。对于小的程序,这样的编程方式是没有什么问题。现在我们来考虑一下如果要注册多个窗口,创建多个窗口和显示多个窗口,再使用这样的函数代码,就比较难复用了。因而随着编程技术发展和软件项目的增大,目前普遍基于面...
阅读(1343) 评论(0)

整个窗口应用的源码

为了方便查看,所有源码放在一起,如下:#windows应用程序 from ctypes import * from ctypes.wintypes import * WNDPROCTYPE = WINFUNCTYPE(c_int, HWND, c_uint, WPARAM, LPARAM) WS_EX_APPWINDOW = 0x40000 WS_OVERLAPPEDWINDOW = 0xc...
阅读(1326) 评论(0)

创建窗口的应用程序

通过前面的基础知识的学习,已经对ctypes库的基本功能学会了使用,为了加强这种知识训练,以及运用刚学习的知识的快乐,我们来创建一个稍稍复杂一点的应用程序。这个应用程序是所有后面应用程序的基础,只有学会这个程序的基本原理,才可以更进一步学习WIN32的API程序开发。更何况后面所有程序都会在这个程序上修改而成,这个就相当你的爬向高楼顶层的第一个台阶。在所有工程技术里,都会从一个小小的演示程序开始,...
阅读(1601) 评论(1)

指针

在很多C语言编写的函数里,大部分都需要传递指针,比如给函数里传送值进去,或者从函数里返回多个值。在Python里想要跟C函数交互,那么需要模拟指针的类型,才可以实现这种梦想。值得注意的是ctypes已经实现了这个梦想,只要使用它定义的函数pointer()就可以。如下面的例子:#windows应用程序#开发人员:蔡军生(QQ:9073204) 深圳  2014-8-15from ctypes im...
阅读(1201) 评论(0)

结构体

在C语言的世界里,程序的组成就是结构体加算法。因此,与Win32的API交互中,肯定少不了结构体的类型。在Python里定义的类,并不能直接使用于C的函数,需要通过ctypes里的结构类继承之后,并按它的格式填写字段才可以使用。下面的例子就是定义一个最简单的结构体,表示屏幕上一个点的坐标的结构体,如下:#windows应用程序 #开发人员:蔡军生(QQ:9073204) 深圳 2014-8-14...
阅读(1115) 评论(0)

回调函数

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数主要用来为不确定的事件、不确定的时间上进行的动作或响应。比如在C库里实现了一个算法叫做快速排序(qsort),为了能让库更加通用,不想在函数中嵌入排序逻辑,而让使用者来实现相应的逻辑,这时就可以使用回调函数方式来实现。如msvcrt.dll里的快速...
阅读(1381) 评论(0)

实例句柄

在Windows应用程序中,总需要加载应用程序文件到系统内存里,为了标识每个文件在内存的区别,Windows使用了句柄来标识这些文件。比如在一个应用程序里,有一个可执行文件(EXE)和多个动态连接库文件(DLL),这时可以标识可执行文件为0x1D000000,动态连接库文件为0x1D001000。这里的值只是举例,当系统运行应用程序时,就会分配实际的值给应用程序。加载到进程地址空间的每一个可执行文...
阅读(2680) 评论(0)
21条 共2页1 2 下一页 尾页
    个人资料
    • 访问:5896342次
    • 积分:76220
    • 等级:
    • 排名:第22名
    • 原创:1624篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2102条
    文章存档