CN1311346C - A method for providing graphic control and a theme management system - Google Patents
A method for providing graphic control and a theme management system Download PDFInfo
- Publication number
- CN1311346C CN1311346C CNB011216972A CN01121697A CN1311346C CN 1311346 C CN1311346 C CN 1311346C CN B011216972 A CNB011216972 A CN B011216972A CN 01121697 A CN01121697 A CN 01121697A CN 1311346 C CN1311346 C CN 1311346C
- Authority
- CN
- China
- Prior art keywords
- theme
- client
- application program
- control
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
Description
技术领域technical field
本发明涉及计算机系统,特别是涉及当提供系统部件时使用汇合点(fusion)的主题识觉管理(theme aware management)。The present invention relates to computer systems, and more particularly to theme aware management using fusions when provisioning system components.
背景技术Background technique
在商业和家庭环境中的计算机用户已经变成习惯于使用具有图形操作系统的计算机。例如,许多用户操作其上装有微软公司“视窗”操作系统的计算机。这些图形操作系统的某些部件公知为“控件”。例如,一个控件可以是“OK”按钮,其通常是其中写有“OK”的长方形按钮。通过移动光标在按钮上和单击鼠标,将开始一个与该控件相关的已知操作。还有许多其它的控件,例如包括滚动条,对话框和滑动条(slider)。除了控件,随着在计算机显示上的需要,图形操作系统还画出或提供其它的图形部件,例如图文框,最小化框和关闭框。Computer users in business and home environments have become accustomed to using computers with graphical operating systems. For example, many users operate computers on which Microsoft Corporation's "Windows" operating system is installed. Certain components of these graphical operating systems are known as "controls." For example, one control could be an "OK" button, which is usually a rectangular button with "OK" written in it. By moving the cursor over the button and clicking the mouse, a known action associated with that control will be initiated. There are many other controls including, for example, scroll bars, dialog boxes, and sliders. In addition to controls, a graphics operating system draws or provides other graphical components as needed on a computer display, such as frame, minimize, and close boxes.
视窗中有两种普通的控件:标准控件和用户控件。标准控件是由操作系统提供的。创建、画出和拖动标准控件的代码是包含在公共控件库(DLL)中,其是视窗的一部分。用户控件是所有其它的控件。用户控件可以由操作系统的制造商或者第三方创建。用于用户控件的代码是包含在对应的单独库(DLL)或者在应用程序中。There are two common types of controls in Windows: standard controls and user controls. Standard controls are provided by the operating system. The code to create, draw and drag standard controls is contained in a common control library (DLL), which is part of the window. User controls are all other controls. User controls can be created by the manufacturer of the operating system or by a third party. The code for the user control is contained in a corresponding separate library (DLL) or in the application.
当前,当诸如控件的图形用户界面部件是通过应用程序使用时,该应用程序请求创建该部件的实例(instance)。随之,操作系统将类消息传输到该部件,指令该部件提供自身。该应用程序在路由从主视窗到目标控件的消息中起作用,但是该控件代码进行画图。该应用程序使用应用程序编码接口(API)来创建和与该控件交互。API用作为由其它程序使用的软件接口,类似于键板用作为计算器的界面。API是高水平编程的基本概念。在高水平编程中,程序常常不是由其本身来执行任务。而是程序要求一些其它的程序来执行这些任务。例如,程序频繁地将各种任务委托到底层的操作系统。继续上述的例子,应用程序将控件的提供委托给该控件的代码。Currently, when a graphical user interface component, such as a control, is used by an application, the application requests that an instance of the component be created. Following this, the operating system transmits a class message to the component, instructing the component to provide itself. The application works in routing messages from the main window to the target control, but the control code does the drawing. The application uses an Application Programming Interface (API) to create and interact with the control. The API serves as a software interface used by other programs, similar to how a keypad is used as an interface for a calculator. API is the basic concept of high-level programming. In high-level programming, the program often does not perform tasks by itself. Rather, the program requires some other program to perform the tasks. For example, programs frequently delegate various tasks to the underlying operating system. Continuing with the above example, the application delegates the provision of the control to the control's code.
在现有技术的环境中,当类给消息是通过控件提供其自己被接收时,该控件将使用其自己的画图软件代码来画出自己。在该现有技术的环境中,该控件知道被认为像什么,被认为如何做,以及能够在计算机的用户界面上实现这种显示。因此,应用程序可以将可视供给(rendering)的所有方面委托给这些控件,避免包含软件代码的需要,该软件代码支持在其主机应用程序内的该控件的可视供给。In a prior art environment, when a class message is received by a control providing itself, the control will draw itself using its own drawing software code. In the context of this prior art, the control knows what is considered to be like, how it is considered to act, and is able to effectuate this display on the computer's user interface. Thus, an application can delegate all aspects of visual rendering to these controls, avoiding the need to include software code that supports visual rendering of the control within its host application.
通过利用由操作系统定义和提供的标准控件,所有的控件将具有相同的外表,与应用程序无关。图形操作系统的用户能够仅仅改变控件的有限数目的特征。在“视窗”操作系统中,用户能够改变在监视器上显示各种控件和部件所使用的颜色主题。用户还能够选择将由控件和部件使用的一小组的字体(font)。因此,可以改变控件和部件的颜色、字体和有限量的尺寸。但是,控件和部件的基本的外形是通过在控件库中的供给软件代码决定的,该控件库包含了特定的图形部件或控件。在现有技术环境中,为改变控件或者图形部件的外表,一定要改变供给软件代码。例如,如果希望改变“OK”按钮的外表,一定要改变在包含该按钮控件的操作系统DLL文件中的供给软件代码,并且该DLL文件在二进制级上重构。如果是希望提供作为椭圆的而不是作为传统的长方形的按钮,则软件代码将不得不因此而改变。这种方法将使计算机用户和软件制造商(如果可能)容易改变控件和图形部件之外表变得困难。By utilizing the standard controls defined and provided by the operating system, all controls will have the same appearance, independent of the application. A user of a graphical operating system can only change a limited number of features of a control. In the "Windows" operating system, a user can change the color scheme used to display various controls and widgets on a monitor. Users can also select a small set of fonts to be used by controls and components. Therefore, the color, font, and size of a limited amount of controls and components can be changed. However, the basic appearance of widgets and widgets is determined by supplying software code in widget libraries that contain specific graphical widgets or widgets. In prior art environments, in order to change the appearance of a control or a graphical component, it was necessary to change the provisioning software code. For example, if one wishes to change the appearance of the "OK" button, the supply software code must be changed in the operating system DLL file containing the button control, and the DLL file rebuilt at the binary level. If it were desired to provide buttons as ellipses rather than as traditional rectangles, the software code would have to be changed accordingly. This approach would make it difficult for computer users and software manufacturers (if possible) to easily change the appearance of controls and graphical components.
为了增强计算机的用户经验,通过改变各种图形部件的总的可见外表或“主题”,用户希望具有改变图形显示的综合“看和感觉”的能力。换言之,如果用户不仅能够改变在监视器上出现的图形部件的颜色和字形,希望还能够改变这些图形部件的外表。例如,希望能够改变和控制控件部件的配置,以及定义控件或其部件的形状。还希望控制如何画出控件或其零件的所有方面。由于在现有技术环境的DLL文件中存在的控件和图形部件是用它们自己提供软件代码“硬编码”,因此改变所有这些控件和部件的外表是困难和麻烦的。这样做就需要重新编码每一个的控件以获得希望的外表。如果要求多个可见格式,则它们的每一个将不得不预先定义且每个都被“硬编码”到每个控件中。而且,如果要使用不同的提供技术,则还一定要记录这些控件。例如,如果使用位图来提供这些控件和希望使用矢量的提供器,则一定要改变每个控件。In order to enhance the user experience of a computer, users desire the ability to change the overall "look and feel" of a graphical display by changing the overall visible appearance or "theme" of the various graphical components. In other words, if the user can not only change the color and font style of the graphic parts appearing on the monitor, it is desirable to be able to change the appearance of these graphic parts as well. For example, it is desirable to be able to change and control the configuration of a control's components, as well as define the shape of a control or its components. You also want to control how all aspects of the control or its parts are drawn. Since the controls and graphics components present in the DLL files of the prior art environment are "hardcoded" with their own provided software code, it is difficult and cumbersome to change the appearance of all these controls and components. Doing so requires recoding each control to achieve the desired appearance. If multiple visible formats are required, each of them will have to be pre-defined and each "hard-coded" into each control. Also, be sure to document these controls if you want to use a different delivery technology. For example, if you are using a bitmap to provide these controls and want to use a vector provider, be sure to change each control.
某些现有技术方法企图寻址上述状态。但是,这些方案并不能使得整个系统的所有控件和图形部件被改变。相反,现有技术方法仅仅寻址被显示部件族中的有限部分。这使得可改变一些控件和图形部件的外表,但剩余的却不能改变。这种方法使得外表不能够按希望那样被协调的改变。Certain prior art methods attempt to address the above states. However, these solutions do not allow all controls and graphics components of the entire system to be changed. In contrast, prior art methods only address a limited portion of the family of displayed components. This makes it possible to change the appearance of some controls and graphics components, but not others. This approach prevents appearance from being coordinated as desired.
现有技术方法是被这种技术进一步限制的,它们用来实现图形用户界面可见单元之外表特性的控制。现有技术外表改变装置是通过截取被传输到该控件的类提供信号和使用低级操作系统图形API来操作的,用该控件的提供代码来代替它们自己的提供代码。但是,图形用户界面中仅仅一部分可见元件是可截取的。由于现有技术方法仅仅依赖于操作系统信号的中断,不仅它们自己是不能够控制根据该协议不起作用的可见单元的外表,他们也不能够给可见单元的作者提供标准的工具来修改提供代码以适应外部控件。Prior art methods are further limited by this technique, and they are used to achieve control of the appearance characteristics of the visible elements of the graphical user interface. Prior art skin changers operate by intercepting class-provided signals passed to the control and using the low-level operating system graphics API, substituting the control's provided code for their own. However, only some of the visible elements in the GUI are clippable. Since prior art methods rely only on the interruption of operating system signals, not only are they themselves unable to control the appearance of visible units that do not function according to the protocol, they are also unable to provide standard tools to authors of visible units to modify provided code. to accommodate external controls.
类似地,用于提供非客户视窗部件例如窗口框架和最小化框的现有技术方法具有缺点。现有技术方法要求用户购买分离的软件包以便支持这些部件的主题构成。现有技术方法是不完全的,因为它们仅仅允许固定子族的控件是可构成主题的。而且,他们实现构成仅仅依赖于标准视窗消息的中断,不用任何控件或者主题画图的USER32知识。Similarly, prior art methods for providing non-client widgets such as window frames and minimize boxes have disadvantages. The prior art approach required the user to purchase a separate software package in order to support thematic composition of these components. Prior art methods are incomplete because they only allow fixed sub-families of controls to be themeable. Moreover, they implement composition interrupts that rely only on standard window messages, without any USER32 knowledge of controls or theme drawing.
在传统操作系统中,非客户视窗部件已经被视窗核心模式中的缺省视窗程序所提供,其响应复合族视窗消息和API调用。将所有主题变量放进单个缺省视窗过程中将是不实际的。将主题特性加到缺省视窗过程将要求更复杂的代码、代码的完全重新编译和艰苦的测试以确定代码是否适当地改进了功能并且不中断任何现行的应用程序。In traditional operating systems, non-client widgets have been provided by the default window program in the window kernel model, which responds to composite window messages and API calls. It would be impractical to fit all theme variables into a single default window procedure. Adding theme features to the default window process would require more complex code, complete recompilation of the code, and painstaking testing to determine if the code improves functionality appropriately and does not break any existing applications.
而且,在提供过程中,中断由操作系统传输给控件的所有相关信号是不可能的。另外,无论在传统操作系统或者在分离软件包的主题构成方法中,都不可能再现由诸如激活顺序的控件实现的复杂可见行为。因此,现有技术方法,其包括操作系统方法和由分离软件包实现的方法是容易产生功能性不兼容,视觉缺陷和性能问题。Also, during provisioning, it is not possible to interrupt all relevant signals transmitted by the operating system to the control. In addition, it is impossible to reproduce complex visual behaviors implemented by controls such as activation sequences, either in traditional operating systems or in separate software package theming methods. Therefore, prior art approaches, including operating system approaches and approaches implemented by separate software packages, are prone to functional incompatibilities, visual deficiencies, and performance problems.
而且,现有技术是受这种方式限制的,其中软件开发者能够在可见的外表上设计满足通用性的控件。使用传统的“所有者画”和“用户画”方法,应用程序开发者已经能够用仅仅有限组项提供控件。现有技术方法不含有这种结构,其允许控件的作者有能设计是“主题识觉”的控件的灵活性。因此,控件的作者不被允许具有自由度,该自由度在创建能够被容易和清楚可见地改变之控件的创建控件中是需要的。Also, the prior art is limited in the way that software developers can design controls that satisfy generality on a visible surface. Using traditional "owner-paint" and "user-paint" approaches, application developers have been able to provide controls with only a limited set of items. Prior art approaches do not contain this structure, which allows control authors the flexibility to design controls that are "theme aware". Therefore, the author of the control is not allowed the degree of freedom that is required in creating controls that can be easily and clearly visibly changed.
而且,提供主题识觉控件的系统应当含有传统应用程序和新的应用程序,它们能够与主题识觉控件一起工作。已经开发和测试了与不是主题识觉的传统控件一起工作的传统应用程序。已经开发和测试了与主题识觉控件一起工作的新的应用程序。主题识觉结构一定允许两种类型的应用程序工作在相同的计算机系统上。Also, a system that provides theme-aware controls should contain legacy applications as well as new applications that can work with theme-aware controls. Legacy applications have been developed and tested to work with legacy controls that are not theme aware. A new application has been developed and tested to work with the subject-aware controls. A topic-aware architecture must allow both types of applications to work on the same computer system.
例如,如果提供了主题的系统要求所有的应用程序使用主题构成控件,即使它们没有用新控件测试,在应用程序开发者期望时,应用程序控件将不被提供。因此,这些控件可以出现为与应用程序的外观不一致,或者相对于该应用程序为错误的地点,或者可以一起停止作用。应用程序的写作者应当能够控制它们的应用程序是否使用新构成主题或者继续使用传统的控件。For example, if a system that provides themes requires that all applications use themed components, even if they have not been tested with new controls, application controls will not be provided when the application developer expects them. Accordingly, these controls may appear to be inconsistent with the appearance of the application, or be in the wrong place relative to the application, or may cease to function altogether. Application authors should be able to control whether their applications use the new composition theme or continue to use legacy controls.
另一个问题是新应用程序不能够在不是主题识觉的传统系统上工作。新应用程序将被开发和测试用于提供了主题的新系统。当这些新应用程序被装载到不是主题识觉的旧系统上时,不仅应用程序的控件将不被主题化,而且在许多情况下,应用程序将是失败的。因此,对于主题识觉应用程序工作在非主题识觉系统上是没有办法的。Another problem is that new applications cannot work on legacy systems that are not subject-aware. New applications will be developed and tested for the new system that provides the subject. When these new applications are loaded onto legacy systems that are not themed aware, not only will the application's controls not be themed, but in many cases the application will fail. Therefore, there is no way for a topic-aware application to work on a non-topic-aware system.
发明内容Contents of the invention
根据本发明,上述问题是这样解决的:创建控件的主题识觉版本和应用称为“汇合点(fusion)”的软件部件选择技术以选择用于主题能力(capable)应用程序的主题识觉版本。本发明包括中继功能,其将视窗提供和尺寸请求从缺省视窗提供功能转移到主题识觉视窗提供功能。According to the present invention, the above-mentioned problems are solved by creating a theme-aware version of the control and applying a software component selection technique called "fusion" to select a theme-aware version for a theme-capable application . The present invention includes a relay function that transfers windowing and size requests from the default windowing function to the theme-aware windowing function.
在已经确定应用程序是否支持主题构成能力之后,本发明的一个方面是用于将两组控件函数的一个连接到应用程序存储映射中的系统和方法。该系统确定应用程序是否具有表明使用控件函数之主题构成组的清单文件。控件主题构成组能够与主题管理者的函数交互,以用主题方式提供图形部件。One aspect of the invention is a system and method for linking one of two sets of control functions into an application memory map after it has been determined whether the application supports theme composition capabilities. The system determines whether the application has a manifest file indicating the theme composition groups that use the control functions. The widget theme composition group can interact with the theme manager's functions to theme graphical components.
该系统和方法还包括将提供消息截取到视窗的截取分支。截取分支从缺省视窗提供例行程序(routine)中选定提供消息,并将该消息送到以主题方式提供视窗图形部件的主题管理者函数中。应用程序接口调用也被路由选定到主题管理者,以便响应该应用程序接口,视窗非客户图形部件能够使用主题被测量或者被提供。通过使用一组与以主题方式提供控件的主题管理者的函数相交互的主题控件函数,该系统和方法还包括提供用户控件和外壳公用控件的方法。The system and method also includes an interception branch that intercepts the offer message to the window. The interception branch selects the provisioning message from the default window provisioning routine and sends the message to the theme manager function that provides the graphical components of the window in themes. API calls are also routed to the theme manager so that in response to the API, the window non-client graphics components can be measured or provided using themes. The systems and methods also include methods for providing user controls and shell common controls by using a set of theme control functions that interact with functions of a theme manager that presents controls in a theme manner.
本发明可以以计算机处理、计算系统或者以诸如计算机编程产品或者计算机可读媒体的制造商产品来实现。The invention can be implemented in a computer process, a computing system or in a manufacturer's product such as a computer programming product or a computer readable medium.
根据本发明,提供一种主题管理系统,构成为在计算机系统上提供图形部件,该计算机系统具有运行一个或多个应用程序的图形操作系统,每一应用程序能够请求连接到控件模块,主题管理系统包括:第一控件模块,具有一个或多个响应应用程序界面调用的第一函数,该调用能够提供具有主题的图形部件;第二控件模块,具有一个或多个响应应用程序界面调用的第二函数,该调用能够提供没有主题的图形部件;和汇合点模块,其响应确定是将该应用程序连接到第一控件模块或者是第二控件模块之一个上以提供图形部件的请求。According to the present invention, there is provided a theme management system configured to provide graphical components on a computer system having a graphics operating system running one or more application programs, each application capable of requesting a connection to a control module, theme management The system includes: a first control module, having one or more first functions that respond to application program interface calls, and the calls can provide graphic components with themes; a second control module, having one or more first functions that respond to application program interface calls A function that is invoked to provide a graphical component without a theme; and a junction module that responds to a request to provide a graphical component by determining whether to link the application to one of the first control module or the second control module.
根据本发明,还提供一种主题管理系统,构成为在计算机系统上提供图形部件,该计算机系统具有运行一个或多个应用程序的图形操作系统,主题管理系统包括:截取异常分支模块,其截取到目标窗口的提供消息,该目标窗口具有非客户图形部件,该提供消息请求目标窗口提供目标窗口的非客户图形部件;主题管理模块,其具有能够提供使用主题的任何窗口的非客户图形部件一个或多个第一函数;路由模块,其将提供消息路由到主题管理模块的一个或多个第一函数上,以便使用具有一组主题特性的主题来提供目标窗口的非客户图形部件;第一控件模块,具有能够与主题管理模块的一个或多个第一函数交互的一个或多个第二函数,以提供具有主题特性的用户控件或者外壳公共控件;第二控件模块,具有能够提供没有主题特性的用户控件和外壳公共控件的一个或多个第三函数;和汇合点模块,其响应来自应用程序的请求以便该应用程序连接到第一控件模块或者是第二控件模块之一个上。According to the present invention, there is also provided a theme management system, which is configured to provide graphics components on a computer system, the computer system has a graphics operating system running one or more application programs, and the theme management system includes: an intercepting abnormal branch module, which intercepts A provide message to a target window that has a non-client graphical component that requests the target window to provide a non-client graphical component of the target window; a theme management module that has a non-client graphical component capable of providing any window that uses a theme or a plurality of first functions; a routing module, which routes the offer message to one or more first functions of the theme management module, so that the non-client graphical component of the target window is provided using a theme with a set of theme properties; the first The control module has one or more second functions capable of interacting with the one or more first functions of the theme management module to provide user controls or shell public controls with theme characteristics; the second control module has the ability to provide one or more third functions of the user control of the feature and the shell common control; and a junction module that responds to a request from an application for the application to connect to one of the first control module or the second control module.
根据本发明,还提供一种在具有图形操作系统的计算机的计算机显示器上提供图形控件的方法,第一组应用程序实现主题能力,第二组应用程序不实现主题能力,该方法包括:提供第一控件模块,其具有能够提供用于不实现主题能力之应用程序的图形控件的一个或多个第一函数;提供第二控件模块,其具有能够提供用于实现主题能力之应用程序的图形控件的一个或多个第二函数;接收来自应用程序的请求,请求应用程序应被连接到第一控件模块和第二控件模块之一上;确定应用程序是否实现主题能力;和如果应用程序实现主题能力则将应用程序连接到第二控件模块上,使得应用程序能够使用第二控件模块的函数来提供具有主题的图形控件。According to the present invention, there is also provided a method of providing graphical controls on a computer display of a computer having a graphical operating system, a first set of application programs implementing theme capabilities and a second set of application programs not implementing theme capabilities, the method comprising: providing a second set of application programs A control module having one or more first functions capable of providing graphical controls for applications not implementing theme capabilities; providing a second control module having graphical controls capable of providing applications implementing theme capabilities one or more second functions of; receiving a request from the application that the application should be connected to one of the first control module and the second control module; determining whether the application implements the theme capability; and if the application implements the theme The capability connects the application program to the second control module, so that the application program can use the functions of the second control module to provide a graphical control with a theme.
本发明减小了应用程序兼容性危险和比原先的方法快。除了将控件与提供技术隔开之外,本发明还提供了将控件与单个主题隔开。本发明允许用户从各种不同主题中选取用户喜欢的主题,并且增强了用户的计算经验。The present invention reduces application compatibility risks and is faster than previous methods. In addition to isolating controls from rendering techniques, the present invention also provides isolating controls from a single theme. The present invention allows the user to select the user's favorite theme from various different themes, and enhances the user's computing experience.
本发明的其它优点和新特征将在下面的说明中提出,并且对审查该领域的本领域技术人员其将在一定程度上变得清楚,或者通过从本发明的实际中得知。Additional advantages and novel features of the invention will be set forth in the description which follows, and in part will become apparent to those skilled in the art upon examination, or may be learned from practice of the invention.
附图说明Description of drawings
图1是表示用在本发明中的结构的示意图;Fig. 1 is a schematic diagram representing the structure used in the present invention;
图2表示用于实现本发明的合适的计算系统环境;Figure 2 represents a suitable computing system environment for implementing the present invention;
图3是表示具有不同主题外表的图形部件的例子;Figure 3 is an example representing graphical components with different theme appearances;
图4是表示汇合点处理的操作流程图;Fig. 4 is a flowchart showing the operation of the junction processing;
图5是表示主题构成视窗部件之示例性处理的操作流程图;FIG. 5 is an operational flow diagram representing an exemplary process of theme composition widgets;
图6是表示主题文件之结构的示意图;Fig. 6 is a schematic diagram showing the structure of a subject file;
图7是表示通过请求图形部件之应用程序的本发明应用的流程图。Fig. 7 is a flowchart showing the application of the present invention by an application program requesting a graphical component.
具体实施方式Detailed ways
在图1所示的本发明的一个实施例中,操作系统是具有图形显示控件和与此相关的部件的图形操作系统。这些控件包括:但是不局限于诸如滚动条、按钮和滑动条。其它的控件是在本发明的范围内,其对本领域技术人员来说是已知的。其它的图形显示部件也是在本发明的范围内。这些部件包括但决不局限于:显示器中视窗的非客户部分,例如为在用户界面上应用程序显示周围的窗框,最小化框和关闭框。In one embodiment of the invention shown in FIG. 1, the operating system is a graphical operating system having graphical display controls and components associated therewith. These controls include, but are not limited to items such as scroll bars, buttons, and sliders. Other controls are within the scope of the invention and are known to those skilled in the art. Other graphical display components are also within the scope of the invention. These components include, but are by no means limited to: non-client portions of windows in the display, such as window frames around application display on the user interface, minimize frames, and close frames.
图1中,示出了用在本发明实施例中的基本结构。如果由于对上述相关专利申请的熟悉导致读者已经熟悉了主题构成系统的操作,则建议读者前进到图4和图5的说明以理解本发明的与用于主题构成系统部件之主题识觉结构相关的实施例。该结构用例子应用程序138和139来说明,其是开放的和在计算机110上运行。由于诸如APPI138的应用程序正在运行,其常常要求在计算机110的监视器191上要被提供或者被显示的控件或者图形部件。In Fig. 1, the basic structure used in the embodiment of the present invention is shown. If the reader is already familiar with the operation of the subject composition system due to familiarity with the above-mentioned related patent applications, the reader is advised to proceed to the description of FIGS. the embodiment. The structure is illustrated by
图1中,库208,210和212通过汇合点模块214被连接到应用程序138和139上。汇合点模块214在不需要改变应用程序本身的情况下使应用程序中控件的主题能够请求控件的可主题的版本。通过使用显示清单215,汇合点模块214使应用程序138和139在运行时间能够装载DLL208,210或212的专用版本。汇合点显示清单215规定其中应用程序要运行的环境,其允许多个DLL版本存在在一个机器上。因此,汇合点显示清单214将映射对部件的请求,使得其作为DLL212中的可主题单元提供,代替来自DLL208的非可主题单元。在不改变应用程序的代码的情况下,这允许现存应用程序将可被主题化。汇合点显示清单214还允许新的可主题控件被放置在来自现有DLL的不同的DLL中,其简化了实现方案和将兼容危险最小化。In FIG. 1 ,
图2表示了合适的计算系统环境100的例子,本发明可以在其上实现。计算系统环境100仅仅是合适的计算系统环境的一个例子,并不打算用于对使用范围或者本发明功能的任何限制。计算环境100既非应当被解释为具有任何依赖性又非被解释为与在示例性操作环境100中说明的部件的任何一个或者组合相关的要求。Figure 2 shows an example of a suitable computing system environment 100 on which the present invention may be implemented. Computing system environment 100 is only one example of a suitable computing system environment and is not intended to be used with any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency nor requirement related to any one or combination of components illustrated in the exemplary operating environment 100 .
本发明用许多其它通用目的或者专用目的之计算系统环境或者结构是可操作的。可以适用于本发明的公知计算系统,环境,和/或结构的例子包括但不局限于个人计算机,服务器计算机,手持式或者膝上型装置,多处理器系统,基于微处理器系统,顶置盒,可编程用户电子装置,网络PC,小型计算机,大型计算机,包括任何上述系统或者装置等的分布式计算环境。The invention is operational with numerous other general purpose or special purpose computing system environments or architectures. Examples of well-known computing systems, environments, and/or architectures that may be suitable for use with the present invention include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top Boxes, programmable consumer electronic devices, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, etc.
本发明可以在通过计算机执行的诸如程序模块的计算机可执行指令的普通文本来说明。通常,程序模块包括例行程序,程序,对象,部件,数据结构等,它们完成特定的任务或者实现特定的抽象数据类型。本发明还实用于分布式计算环境中,在这里任务是通过远程处理装置完成的,这些远程处理装置通过通信网络被连接。在分布式计算环境中,程序模块可以定位在包含有存储器存储器件的本地和远程计算机存储媒体中。The invention may be described in plain text of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The invention also has utility in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
参考图2,用于实现本发明的示例性系统包括呈计算机110形式的通用目的计算装置。计算机110的部件可以包括但不局限于处理单元120,系统存储器130,以及将包括系统存储器的各种系统部件耦合到处理单元120的系统总线121。系统总线121可以是任何几种类型的总线结构,其包括存储器总线,或者存储器控制器,外围总线,以及使用各种总线结构之任何一个的局部总线。通过例子但不限制,这种结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强ISA(EISA)总线,视频电子装置标准协会(VESA)局部总线,和也公知为Mezzanine总线的外围部件互连(PCI)总线。Referring to FIG. 2 , an exemplary system for implementing the present invention includes a general purpose computing device in the form of computer 110 . Components of computer 110 may include, but are not limited to, processing unit 120 , system memory 130 , and system bus 121 coupling various system components including system memory to processing unit 120 . System bus 121 may be any of several types of bus structures including a memory bus, or memory controller, a peripheral bus, and a local bus using any of a variety of bus structures. By way of example and not limitation, such architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and also known as the Mezzanine bus Peripheral Component Interconnect (PCI) bus.
计算机110典型地包括各种计算机可读媒体。计算机可读媒体能够是任何可获得的媒体,其能够通过计算机110访问,包括易失性和非易失性媒体,可移动和非可移动媒体。通过例子但不限制,计算机可读媒体可以包括计算机存储媒体和通信媒体。计算机存储媒体包括易失性和非易失性媒体,可移动和非可移动媒体,它们通过用于信息存储的任何方法或者技术实现,该信息包括例如计算机可读指令,数据结构,程序模块或者其它数据。计算机存储媒体包括但不局限于:RAM,ROM,EEPROM,闪烁存储器或者其它存储技术,CD-ROM,数字通用盘(DVD)或者其它光盘存储,磁带盒,磁带,磁盘存储或其它磁存储器件,或者能够用来存储期望的信息和能够用计算机110访问的任何其它媒体。通信媒体典型地包括计算机可读指令,数据结构,程序模块或者在诸如载波或其它传输机理的调制数据信号中的其它数据,以及包括任何信息传递媒体。术语“调制数据信号”意思是具有一个或多个特征组的或者以这种方式改变以编码信号中的信息的信号。通过例子但不是限制,通信媒体包括诸如有线网络或者直达线连接的有线媒体,以及诸如声音,RF,红外线和其它无线媒体的无线媒体。上述的任何组合也应当包括在计算机可读媒体的范围内。Computer 110 typically includes various computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile media, removable and non-removable media, implemented by any method or technology for storage of information including, for example, computer readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to: RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic tape cartridges, magnetic tape, magnetic disk storage or other magnetic storage devices, Or any other medium that can be used to store desired information and that can be accessed with computer 110 . Communication media typically embody computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and include any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as voice, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
系统存储器130包括计算机存储媒体,其是诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式。基本输入/输出系统133(BIOS),其包含例如在启动时帮助在计算机110内的单元之间传输信息的基本例行程序,典型地被存储在ROM131中。RAM132一般包含数据和/或程序模块,其可以由处理单元120立即访问和/或即时被处理单元120操作。通过例子但不是限制性的,图2表示了操作系统134,应用程序138和139,其它程序模块136和程序数据137。System memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132 . A basic input/output system 133 (BIOS), which contains the basic routines that help transfer information between units within the computer 110, such as at start-up, is typically stored in ROM 131 . RAM 132 generally contains data and/or program modules that are immediately accessible to and/or immediately operable by processing unit 120 . By way of example and not limitation, FIG. 2 shows operating system 134 ,
计算机110也可以包括其它的可移动/非可移动的,易失性/非易失性计算机存储媒体。仅仅作为例子,图2表示了硬盘驱动140,其从可移动的非易失性磁性媒体中读或写;磁盘驱动151,其从可移动的非易失性磁盘152中读或写;和光盘驱动155,其从诸如CD ROM或其它光学媒体的可移动的非易失性光盘156中读或写。能够被用于示例性操作环境中的其它可移动/非可移动的易失性/非易失性计算机存储媒体包括但不限制于磁带盒,快速存储卡,数字通用盘,数字视频带,固态RAM,固态ROM,等。硬盘驱动141通过诸如接口140的非可移动存储接口一般被连接到系统总线121,磁盘驱动151和光盘驱动155通过诸如接口150的可移动存储接口一般被连接到系统总线121。Computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 2 shows a hard disk drive 140, which reads from or writes to a removable non-volatile magnetic medium; a magnetic disk drive 151, which reads or writes from a removable non-volatile magnetic disk 152; and an optical disk. Drive 155, which reads from or writes to a removable non-volatile optical disc 156, such as a CD ROM or other optical media. Other removable/non-removable volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cartridges, flash memory cards, digital versatile disks, digital video tapes, solid state RAM, solid state ROM, etc. Hard disk drive 141 is typically connected to system bus 121 through a non-removable storage interface, such as interface 140 , and magnetic disk drive 151 and optical disk drive 155 are typically connected to system bus 121 through a removable storage interface, such as interface 150 .
上面所述和图2所示的驱动及它们相关的计算机存储媒体提供存储计算机可读指令,数据结构,程序模块和用于计算机110的其它数据。例如图2中,硬盘驱动141被表示为存储操作系统144,应用程序145,其它程序模块146和程序数据147。注意,这些部件不是与操作系统134,应用程序138和139,其它程序模块136和程序数据137相同或是不同。操作系统144,应用程序145,其它程序模块146和程序数据147这里以不同的数字给出,以说明至少它们是不同的拷贝。用户可以将命令和信息通过诸如键盘162和通常称为鼠标、跟踪球或触摸板的点击装置161的输入装置输入到计算机110中。其它的输入装置(未示出)可以包括话筒,遥控杆,游戏盘,卫星天线,扫描器等。这些输入装置通过被耦合到系统总线的用户输入接口160常常被连接到处理单元120,但也可以通过诸如并行端口,游戏端口或通用串行总线(USB)的其他接口和总线结构来连接。经过诸如视频接口190的接口,监视器191或其它类型的显示装置也可以被连接到系统总线121。除监视器之外,计算机还可以包括其它的外设输出装置,例如扬声器197和打印机196,它们可以通过输出外设接口195被连接。The drives described above and shown in FIG. 2 and their associated computer storage media provide storage of computer readable instructions, data structures, program modules and other data for the computer 110 . For example in FIG. 2 , hard disk drive 141 is shown as storing operating system 144 , application programs 145 , other program modules 146 and program data 147 . Note that these components are not the same as or different from operating system 134 ,
计算机110可以工作在使用逻辑连接到一个或多个远程计算机例如远程计算机180的网络化环境中。远程计算机180可以是个人计算机,服务器,路由器,网络PC,同等实体或其它公共网络节点,并且一般包括相对于计算机110的许多或所有上述的单元,尽管仅仅存储器存储装置181已经表示在图2中。图2描述的逻辑连接包括局域网络(LAN)171和广域网络(WAN)173,但是也可以包括其它网络。这种网络化环境在办公室、企业计算机网络、内部网络和因特网中是平常的。Computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 180 . Remote computer 180 may be a personal computer, server, router, network PC, equivalent entity or other public network node, and generally includes many or all of the elements described above with respect to computer 110, although only memory storage device 181 has been shown in FIG. . The logical connections depicted in Figure 2 include a local area network (LAN) 171 and a wide area network (WAN) 173, but other networks may also be included. Such networking environments are commonplace in offices, enterprise computer networks, intranets and the Internet.
当被用在LAN网络化环境中时,计算机110通过网络接口或者适配器170被连接到LAN171。当被用在WAN网络化环境中时,计算机110一般包括调制解调器172或其它用于在WAN173上建立通信的装置,例如因特网。可以是内部或者外部的调制解调器172经过用户输入接口160或者其它合适的机构被连接到系统总线121。在网络化环境中,相对计算机110或者其部分所描述的程序模块可以被存储在远程存储器存储装置中。作为例子但不是限制性的,图2表示了作为驻留在存储器装置181上的远程应用程序185。可以理解,所示的网络连接是示例性的,可以使用在计算机之间建立通信连接的其它装置。When used in a LAN networked environment, the computer 110 is connected to a LAN 171 through a network interface or adapter 170 . When used in a WAN networked environment, computer 110 typically includes a modem 172 or other means for establishing communications over WAN 173, such as the Internet. Modem 172, which may be internal or external, is connected to system bus 121 via user input interface 160 or other suitable mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example and not limitation, FIG. 2 shows remote application 185 as resident on memory device 181 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
尽管没有示出计算机110的许多其它内部部件,本领域普通技术人员将理解这些部件和相互连接是公知的。因此,涉及计算机110内部结构的附加细节有关本发明将不公开说明。Although many other internal components of computer 110 are not shown, those of ordinary skill in the art will understand that these components and interconnections are well known. Accordingly, additional details relating to the internal structure of computer 110 will not be disclosed in connection with the present invention.
本领域技术人员将理解诸如操作系统134,应用程序138和139,以及数据137的程序模块经过一个存储器存储装置被提供给计算机110,存储器存储装置可以包括ROM131,RAM132,硬盘驱动器141,磁盘驱动器151或者光盘驱动器155。优选地,硬盘驱动器141用来存储数据137和程序,该程序包括操作系统134和应用程序138和139。Those skilled in the art will appreciate that program modules such as operating system 134,
当计算机110打开或复置时,存储在ROM131中的BIOS133指示处理单元120将操作系统从硬盘驱动141装入到RAM132。一旦操作系统144被装入到RAM132中,处理单元120执行操作系统代码和引起与操作系统134之用户界面相关的视频元素被显示在监视器191上。当诸如应用程序138的应用程序被用户打开时,程序代码和相关数据从硬盘驱动器141中读出和存储在RAM192中。BIOS 133 stored in ROM 131 instructs processing unit 120 to load an operating system from hard disk drive 141 into RAM 132 when computer 110 is turned on or reset. Once operating system 144 is loaded into RAM 132 , processing unit 120 executes the operating system code and causes video elements associated with the user interface of operating system 134 to be displayed on monitor 191 . When an application program such as
图3示出了具有各种外表的图形部件的显示例子。如图3所示,控件可以采用OK按钮200、Cancel按钮202和Apply按钮204的形式。本发明允许可视地改变控件和其它部件的外表以便更好地适合于计算机用户的要求。除颜色和字形选择之外,本发明允许改变控件的外表。例如,控件部件的配置能够按要求定义。例如,滚动条能够被赋予上和下箭头,其在滚动条的底部相互靠近,代替向上的箭头和在底部的向上和向下的箭头。而且,可以定义控件和其部件的形状。如图3所示,对于每一个按钮200,202和204,示出了4个不同的整体外表。每个不同外表的设定是协调的并且被称为“主题”。每个主题是由图3中的一个按钮行表示。尽管仅仅在图3中示出了4个主题,计算机用户可以选择创建无限多的主题。主题是相对特殊对象或者希望视觉环境的外表特征的集合或组。正如下述,本发明允许计算机的用户指定多个预定义主题的哪一个将被应用到视频显示的控件和其它部件。而且,在不需要改变控件和其他图形部件的软件代码的情况下,本发明允许新的视频主题被加到系统。另外,在不改变控件和其他图形部件的软件代码的情况下,本发明允许附加新的提供技术或者改进现有的提供技术。Fig. 3 shows display examples of graphic parts having various appearances. As shown in FIG. 3 , the controls may take the form of an
作为应用程序,例如图1中的APP2 139,运行它常常要求在计算机110的监视器191上赋予或者显示控件或图形部件。例如,参考图3,OK按钮200的显示可以被监视器上的应用程序所需要。应用程序139请求创建按钮200的实例。根据这,操作系统将类消息传递到指令其画出自己的控件。这个请求将被选定到包含特殊控件的动态连接库(DLL)上。作为例子,视窗操作环境中的DLL被称为User32.dll或者ComCtl32.dll(V5),其分别在图1中表示为208和210。库208和210存在于图形操作系统134内。库208和210一般通过缺省用应用程序139来连接。正如后面要说明的,库208和210的连接能够通过汇合点214(fusion)的使用来优先。库208和210内定义的控件包含提供在监视器上的控件所需要的画图代码。因此,为改变库208和210中控件的外表,对于库208和210中的每个控件,一定要改变软件的画图代码。As an application program, such as
附加库DLL,图1中所示的212,类似于库210,在于其包含若干预先定义的可以由应用程序138使用的控件和图形部件185。广义地说,DLL212包含若干将被图形显示的部件。但是,在库212中,这些控件被不同地定义,使得它们是“主题识觉”的。除了包含提供多视频类型控件所需要的所有软件代码之外,这些控件被定义成具有有关控件的某些基本的信息或者值,例如,控件的地点,部件和状态。The add-on library DLL, shown at 212 in FIG. 1 , is similar to
地点是在用户界面上用户所希望的位置。部件是构成控件的不同项目。作为例子,滚动条控件具有加长的矩形杆状零件,在杆状零件中滑动的较小的拇指零件,和在杆状零件的每端上的箭头零件。控件的状态说明当前的外表,其反映了那个零件的功能状态。例如,按钮能够是激活的,可按压的,热的(hot)(当鼠标在控件上时),阻塞的或者不激活的。The location is a location desired by the user on the user interface. Parts are the different items that make up the control. As an example, a scroll bar control has an elongated rectangular stem part, smaller thumb parts that slide within the stem part, and arrow parts on each end of the stem part. The state of a control describes the current appearance, which reflects the functional state of that part. For example, a button can be active, depressible, hot (when the mouse is over the control), blocked or inactive.
DLL212中的控件也包含如果没有选择主题的话提供控件所需要的画图代码,以及通过代码的主题识觉通路。DLL212从主题管理器DLL216中请求提供或者画图服务。主题管理器216提供请求提供服务和在显示器的说明地点上画出控件,在说明状态中具有说明零件。The controls in the
主题管理器216包含一系列的API,其允许库212与主题管理器交互和通信。API允许控件的作者在DLL212内定义控件,作为一系列的零件和状态,而不需要软件提供代码。这些API通常被分成三种类型:画图API218,信息API220和利用API222。画图API218通常用在提供和在所需控件零件和其它部件之布置中的帮助中。信息API220通常用于获得有关控件之当前定义外表的信息,以允许控件被单独地定型。利用API222是被不同于这些控件的操作系统所使用的那些API,来控制主题选择。利用API222包括能够用于列举所安装主题和装载它们之一个的功能。
画图API218是主题识觉画图服务的集合。在画图API218组中的每个单独的API被用来实现不同的画图服务。通常,每个API要求附近之图形部件的专用零件和状态。提供了称为“DrawThemeBackground”的API,其画出专用主题的边框,并且在希望的地点填上专用零件和状态。类似地,提供了称为“DrawThemeText”的API,其画出使用用于专用零件和状态的专用主题的颜色和字形的专用文本。Drawing
作为例子,如果由应用程序138请求OK按钮200(图3),DLL212中的控件将通过诸如DrawThemeBackground或者DrawThemeText的函数调用将零件,状态和地点信息传递给画图API218。正如下面更详细说明的,该零件和状态信息是与外表特征匹配的,并且主题管理器216在监视器上画出控件。画图API218还包括被称为“GetThemeBackgroundContentRect”的API。该API使控件获得被定义主题背景之内容的大小。通常,这是在边框或者边界内的区域。通过使用该API,控件能够确定该背景内的可得到区域,其中放置了项目。当使用该API时,DLL212中的控件用专用零件和状态请求有关图形部件的信息。这个信息是通过主题管理器216获得的并且被返回到该控件。提供了被称为“GetThemeBackgroundExtent”的类似API,计算专用主题背景的大小和地点,其用于被给出内容矩形范围的专用零件和状态。当知道内容时可以使用该API,并且基于该内容,需要确定用于主题背景的外部边界。提供了被称为“GetThemePartSize”的另一个API,用来检索主题作者,其被规定为控件零件的最小和常规大小。As an example, if the OK button 200 (FIG. 3) is requested by the
画图API218还包括称为“GetThemeTextExtent”的API。当在主题字体中提供时,该API用来计算规定文本的大小。因此该API能够用来确定给定文本串的宽度和高度。因此,控件的作者能够规定具有与此相关之文本的零件和状态,并且使用该API从主题管理器216中获得与文本串的大小相关的信息。类似地,称为“GetThemeTextMetrics”的另一个API是可获得的,其能够用来获得有关所用字形的大小信息。因此,该API可以用来获得诸如平均字体字符之宽度的信息。换言之,该API用来从主题管理器216中获得该控件需要的有关专用主题字形之大小的信息。The drawing
在画图API218中还提供了称为“GetThemeBackgroundRegion”的API。在一些操作系统中,区(region)是一种描述非矩形形状的的方法。区还能够被认为是一种具有透明零件的图象。该API用来计算规则或者部分透明之专用主题背景的区。换言之,在专用零件和状态的窗框背景中,该API可以用来确定什么是透明的,什么是不透明的。因此,该API支持控件和零件非矩形形状的定义。类似地,提供了称为“HitTestThemeBackground”的API。该API用来确定在被点击的规定零件的背景中的点是否是在透明的或者在不透明的区域中。通过DLL212中的控件该API用来从主题管理器216中获得信息。如果该点击是在透明区域中,可以不需要激活。相反,如果该点击是在不透明区域中,可以需要激活。An API called "GetThemeBackgroundRegion" is also provided in the
包含在画图API218中的另一个API被称为“DrawThemeLine”。该API使得主题定义一个线的类类型。该类类型可以通过调用“DrawThemeLine”API被访问和用于专用零件。类似地,提供了称为“DrawThemeBorder”的API,其允许所定义主题边界被专用。该主题边界可以画为利用该API的专用零件。Another API included in the
提供了称为“DrawThemelcon”的API,其允许所定义主题图标被提供,可以包括专用主题的特殊结果。例如,当鼠标直接在图标上时,主题图标可以具有不同的外表,例如发光外表。An API called "DrawThemelcon" is provided which allows defined theme icons to be rendered, possibly including special results for dedicated themes. For example, a themed icon may have a different appearance, such as a glowing appearance, when the mouse is directly over the icon.
画图API218还包含称为“IsThemePartDefined”的API,其可以用于确定主题是否已经定义了用于专用零件和状态的参数。如果零件在主题内没有定义,则控件能够画出该零件本身。如果零件已经被主题定义,则主题管理器216将根据主题定义信息提供该零件。提供了称为“IsThemeBackgroundPartiallyTransparent”的另一个API。该API用来确定背景是否是矩形的或者是具有透明零件的区。该API可以用来简单化该控件代码。如果在背景中没有透明,则没有必要通过使用“HitTestThemeBackground”API来进行任何点击测试。The drawing
重要的是,画图API218还包括称为“OpenThemeData”的API。该API用来获得用于类名列表的句柄。类名列表识别一组图形部件,并且可以被分成母类名和一个或多个子类名。例如,母类名可以是按钮。用于那个母类的子类名可以是“开始按钮”。句柄是对内部结构的参考,其详叙了对象的各种信息和特性。主题管理器216将在列表中检索每个类名,并且使用所找到的第一个匹配主题信息。例如,如果类名包括开始按钮和按钮两者,则如果存在就使用开始按钮主题信息。如果开始按钮主题信息不存在,则就使用用于按钮的主题信息。如果没有找到值,将使用旧代码来提供该控件。如果返回了任何非0值,就建立有效的主题句柄。该主题句柄将被返回到DLL212并且用于所有的主题画图。Importantly, the drawing
类似地,所提供的另一个API被称为“CloseThemeData”。当控件被关闭例如不再需要按钮时或者当主题被改变时,使用该API,正如后面更详细地说明。Similarly, another API provided is called "CloseThemeData". This API is used when a control is closed such as a button that is no longer needed or when the theme is changed, as explained in more detail later.
所提供的另一个API被称为“IsThemeActive”。在当前主题是有效时,该API允许DLL212中的控件获得真或假的回答。该API因此能够用来确定是调用“OpenThemeData”API或者仅仅使用现存的控件将自己提供的画图代码。Another API provided is called "IsThemeActive". This API allows controls in the
正如上述,主题管理器216还包含一组信息API220。这些信息API220允许控件被单独地定制。换言之,这些API被用在仅仅一些实例中并且可以用来获得有关专用控件的信息。这些信息API用来询问主题管理器216,该主题管理器216是用于有关主题之专用特性的被定义主题信息。因此,每个API220请求信息,其是由主题管理器216提供的。As mentioned above,
信息API220内是称为“GetThemeColor”的API。该API利用具有特有颜色特性识别符的专用零件和专用状态以获得有关主题颜色的信息。该特性识别符是希望的颜色特性数。换言之,颜色API用来要求对应于所希望特性的颜色值,例如背景颜色。提供了另一称为“GetThemeMetric”的API,其请求和接收用于专用特性识别符的大小值。该大小值将是整数。称为“GetThemeString”的API也在信息API220内提供。该API用来获得用于专用特性识别符的串。该串将包括有关串中字符数和该串终止处的信息。Within the
另一个API在称为“GetThemeBool”信息API220中提供,其对于给定零件、状态和特性将返回一个不是0就是1的整数。0和1对应于对于那个零件、状态和特性的真或假状态。所提供的另一个API称为“GetThemeInt”。在具有专用特性识别符的专用状态中,其将返回用于专用零件的整数值。类似地,提供称为“GetThemeEnum Value”的API,其将返回用于专用零件、状态和特性识别符的主题列举。主题列举仅仅是支持数字值的变量,其对应于符号信息。例如,用于校准的列举可以是对应于数字0,1,2的左,中,右。Another API is provided in a
提供称为“GetThemePosition”的另一个API,对于具有专用特性识别符的专用状态中的专用零件,对应于x位置和y位置,其将返回两个整数值。在信息API220中提供的另一个API被称为“GetThemeFont”。该API用来获得所用的给定专用零件、状态和特性识别符号的字形主题的逻辑说明。Another API called "GetThemePosition" is provided which will return two integer values corresponding to the x-position and y-position for a specific part in a specific state with a specific property identifier. Another API provided in the
在信息API220中提供的又一个API被称为“GetThemeRect”。该API将返回四个整数,代表专用零件、状态和特性识别符的左、右、顶和底。类似地,提供称为“GetThemeMargins”的API,其将返回四个整数,代表给定的专用零件、状态和特性识别符的左空间、右空间、顶空间和底空间。还有一个称为“GetThemeIntList”的API,其将返回专用特性的值,它的类型是整数值的列表。最后,提供称为“GetPropertyOrigin”的信息API,其返回在此产生该特性的位置。该API允许控件的作者获得该特性起源的信息。换言之,该API允许控件的作者确定该特性是否是专用于状态、零件、类、全局的或者是没有找到的特性。这是需要的,因为主题特性是由主题作者以分级结构方式规定的。例如,如果特性不是专用在“状态”级别,则主题管理器将为该特性搜索“零件”级别,“类”级别以及最后的“全局”级别。有时控件知道是否特性对其正在处理的零件/状态是清楚定义的是重要的。还有一个称为“GetThemeFilename”的API,其返回专用文件名特性的串值。Yet another API provided in the
在信息API220中提供的又一个API被称为“SetWindowTheme”。该API允许控件的作者更改控件窗口,以除其类将正常使用外使用不同组的主题信息。换言之,在给控件以专用观看而不是由那个类的主题所定义的标准观看的同时,该API允许使用该控件。该API可以使用附加的参数以识别特殊应用程序和类名。这允许主题作者使用专用类但是改变该类的外表。例如,可以定义按钮,其具有给定的按钮外表。利用该API,该按钮能够被更改为不同的类名。例如,可以规定“OKButton”。然后主题作者将能够使用称为“OKButton”的类,并且“OKButton”将具有与标准按钮外表不同的外表。Yet another API provided in the
在类似于视窗系统标准的信息API组中还具有子组的主题标准API,但是其专用于主题。不同于正常的基于控件的特性,这些特性是对所有控件可获得的和分享的。“GetThemeSysColor”返回专用系统颜色索引的主题专用颜色值。“GetThemeSysColorBrush”返回一个是专用系统颜色索引颜色的画图刷的句柄。“GetThemeSysSize”返回专用主题大小索引的整数大小。“GetThemeSysBool”返回用于专用主题布尔索引的布尔值(0或1)。“GetThemeSysFont”返回用于专用主题字体索引的逻辑字形结构。“GetThemeSysString”返回专用主题串索引的串值。There is also a subgroup of Themes Standard APIs within the Information API group similar to the Windows Standards, but dedicated to Themes. Unlike normal widget-based properties, these properties are available and shared by all widgets. "GetThemeSysColor" returns the theme-specific color value of the system-specific color index. "GetThemeSysColorBrush" returns a handle to a paint brush that is a dedicated system color indexed color. "GetThemeSysSize" returns the integer size of the dedicated theme size index. "GetThemeSysBool" returns a Boolean value (0 or 1) for a dedicated theme Boolean index. "GetThemeSysFont" returns the logical glyph structure for indexing dedicated theme fonts. "GetThemeSysString" returns the string value of the dedicated theme string index.
在信息API组220中还有一些面向应用的API。“IsAppThemed”返回表示该应用是否是由操作系统形成主题的布尔值(0或者1)。“GetWindowTheme”返回最近的主题句柄,如果需要,其为专用视窗打开。“GetThemeAppProperties”返回控制其窗口零件和类型是在该应用中可成主题的标志。“SetThemeAppProperties”允许该应用设置这些相同的标志。There are also some application-oriented APIs in the
最后,具有用于错误处理的信息API220。“GetThemeLastErrorCobtext”返回与当前执行表上的最后报告主题错误相关的错误上下文本(包括错误代码,错误代码参数,文件名和源线)。“FormatThemeMessage”返回用于专用语言中专用错误上下文本的错误串。Finally, there is an
主题管理器216不仅包括画图API218和信息API220,而且包括一组利用API222。这些API用于实现各种结果。
画图API218和信息API220允许作者或者DLL212中控件的创建者定义控件作为一系列的零件和状态。因此,所定义的控件是从主题管理器216的提供过程中提取的,并且也是从主题定义外表信息或者特性中提取的,正如下面的详细说明。使用API218和220,控件的作者能够创建控件,其是“主题识觉”和安装用于与主题管理器216的通信。该通信包含给主题管理器216传递基本的信息或值,其允许主题管理器提供希望的控件,具有在希望状态中的需要零件。Drawing
主题管理器216还包含执行画图指令所需要的提供器。例如,能够使用边界填充提供器221,允许将不同的颜色主题应用到控件上。作为另一个例子,能够使用位映射提供器223,其定义控件零件作为图象。其它的提供器例子包括使用矢量定义语言,便携式网络图形(PNG)文件,或者便携式文件格式文件(PDF)。应当理解,本发明并不局限于特殊的提供技术。如果希望或需要不同的提供器,则主题管理器216的画图代码被修改为将该提供器加到主题管理器216。因此,DLL212中的控件是从主题管理器216中的提供技术分离或提取出的。这允许不同的提供器被附加到主题管理器216,而不需要修改DLL212中的控件,正如下面的详细说明。
主题管理器216中的提供器提供所请求的控件,其根据已经由计算机用户所选择的外表主题。例如,图1中所示的外表主题224和226。正如所示,主题224可以是用户主题,主题226可以是商务主题。但是,应当理解,能够使用其它的主题,本发明决不局限于特定的主题。例如,其它的主题可以包括卡通主题,孩子的主题或者高尔夫主题。正如图1中所示,商务主题226已经由用户选择,如实线228所示。用户主题224是选择获得的,如虚线230所示。Providers in
每个主题224和226具有类似的结构。正如图6所示,商务主题226包括一系列的图象文件232。图象文件232是由特殊主题使用的图象文件。在这种情况下,图象文件232是由商务主题226使用的图象文件。商务主题226还包括themes.ini文件234。文件234是文本文件,并且能够在ANSI或者UNICODE字符集中创建。文件234规定获得的颜色方案和该主题可获得的大小。在主题226的情况下,文件234规定获得的颜色方案和商务主题226可获得的大小。因此,文件234代表了所有其应用的主题的变化。Each
主题文件234由一个或多个段构成。主题文件234内的段包括文献段236,大小段238,颜色方案段240和文件段242。文献段236是选择性的,可以包含任何特性名。大小段238规定大小名,例如“缺省大小”,“很小”或“很大”。颜色方案段240用来规定简单的颜色方案名和与该颜色方案名相关的选择颜色方案传递。文件段242用来规定类数据文件的唯一名称。文件段242将包括文件名,用于该文件名的颜色方案(来自颜色方案段240),以及该文件将支持的大小(来自大小段238)。The
主题226包括在图6中标记的第二个.ini文件244。文件244是类数据文件,其包含用于特定大小和颜色方案的主题数据。文件244还可以包含定义段。例如,文件244可以包含定义特殊类控件之特性的全局段。文件244还可以包含允许获得和使用系统标准的段。最后,文件244可以包含一组类段。每个类段名包含类名,选择零件名,和选择状态名。在该段内是特性/值对,其定义专用零件或控件的外表。例如,类名可以是用于滑动控件的“滑动器”。为该滑动器规定的零件是“轨道”。为该轨道零件定义的状态是“正常”,“不能”和“激活”。该类段名还能够包括应用程序(或者“组”)名,其规定该段仅仅应用到专门的应用程序中(或者“组”名,正如SetWindowTheme API所规定的)。The
图象文件232,主题文件234,包括文件244被广泛地分组在一起以构成主题目录246。主题目录246和位于主题管理器216内的系统方案文件被用于装载商务主题226。该系统方案文件是定义用于包含在特殊主题中的所有特性的特性数的文件和基本上是母定义文件,其允许主题特性将被指定一个对应于所定义外表的数。Image files 232 , theme files 234 , and include
因此,主题目录246包含主题.ini文件234,类数据文件244和由主题使用的所有图象文件232。主题目录246的内容能够通过主题包装工具250包装成DLL文件。主题包装工具250通过分析防止方案文件句法错误和将该.ini文件加到正被建立的包装上来处理主题.ini文件。从文献段所识别的特性被写到包装串表中。来自颜色方案段240的颜色方案信息和来自大小段238的大小信息也被写到包装串表中。也处理每个类数据文件244。在类数据文件被处理时,该文件被分析防止该方案文件的句法错误。该类数据文件还被加到正被建立的包装上。Thus,
由主题包装工具250产生的DLL文件是商务主题文件226。文件226包含主题数据,并且该主题数据从控件库212中分开。这允许在不改变库212中定义的控件的情况下创建和选择不同的主题。因此,控件的作者能够创建和定义与外表或者主题数据无关的控件。文件226是二进制格式并且当计算机用户选择商务主题226时被传递到共享的主题数据文件252,正如图1中所示。文件252是共享存储映射文件,其能够通过所有的处理被访问。因此,当主题由计算机用户选择时,主题管理器216将读用于所定义主题文件例如文件226的信息,并且将那个二进制格式的信息放在文件252中,在此所有运行处理都可访问该二进制信息。The DLL files generated by
正如图1所示,提供了主题转换控件板254,其与主题管理器216通信。板254与用户界面结合,显示用户能够从中选择的可获得主题。正如图1所示,控件板254将允许用户选择商务主题226或者用户主题224。正如上面已经讨论的,如果选择了商务主题226,并且计算机的用户转换选择了用户主题224,则主题224将以二进制数据被装载到共享的存储器映射文件252中。主题管理器216还给DLL文件212中的每个主题识觉控件发送主题已经改变的消息。每个主题识觉控件知道如何响应该消息。As shown in FIG. 1 , a theme
当主题识觉控件接收了主题已经改变的消息时,该控件将关闭经过OpenThemeData API接收的当前主题句柄。然后该控件将企图打开新的主题句柄,再次使用OpenThemeData API。如果不能够打开新的主题句柄,该控件知道该主题已经为那个控件关闭,并且旧的画图代码将被该控件使用以画出自己。如果打开了新的主题句柄,则主题管理器216将查看该主题二进制数据和开始新的画图例行程序,使得利用新选择的主题例如用户主题224重新画出所有的主题识觉控件。任何关于在先选择的主题被缓存的信息是无效的,并且那个信息一定要被重新计算。When a theme-aware control receives a message that the theme has changed, the control will close the current theme handle received via the OpenThemeData API. The control will then attempt to open a new theme handle, again using the OpenThemeData API. If the new theme handle cannot be opened, the control knows that the theme has been turned off for that control, and the old drawing code will be used by the control to draw itself. If a new theme handle is opened,
操作中,正如图7所示,应用程序138或者139将请求在用户界面上提供的诸如控件的图形,如256的表示。该图形请求是通过汇合点214路由的。正如258所示,汇合点处理将确定所请求的控件是否是主题识觉控件。如果所请求的控件不是主题识觉的,则使用旧的代码并且控件将使用来自DLL208或者210的控件画出自己,如图7中的260所示。如果所请求的控件是主题识觉的,则图形请求在DLL212中被处理,如262所示。在请求提供服务中,使用API218,220和222,DLL212中的控件将用于图形请求的例如用于该请求控件的零件,状态和地点的基本信息传递给主题管理器216。因此,在没有由主题管理器216找到的外表特性的应用程序的情况下,图形请求在DLL212中处理。然后,主题管理器216将确定或者应用用于该给定控件零件和状态的主题专用外表特性,如264所示。该外表数据是从共享存储器映射数据文件252中检索的。使用该检索的外表数据,对于所请求的控件零件和状态,沿着该地点,主题管理器将在计算机显示上提供该控件,如266所示。In operation, as shown in FIG. 7 , the
参考图4,说明以汇合点214(图1)实现的逻辑操作的另一个实施例。在该实施例中,当装载应用程序而不是例行应用程序如图7中通过汇合点请求时执行汇合点操作。通过将较老的非主题控件连接到较老的应用程序,汇合点允许较老的非主题应用程序工作于主题环境中。较老的非主题控件以User32.dll和ComCtl32.dll版本5(V5)提供。User32.dll提供诸如按钮,滚动条和列表框的用户控件。ComCtl32.dll提供诸如工具条,列表视图和树视图的外壳公共控件。汇合点214将主题控件文件ComCtl32.dll版本6(V6)连接到已经在主题环境中开发和测试的新的应用程序上。Referring to FIG. 4, another embodiment of logical operations implemented with the junction 214 (FIG. 1) is illustrated. In this embodiment, rendezvous point operations are performed when an application is loaded rather than a routine application as in FIG. 7 via a rendezvous request. Rendezvous allows older unthemed applications to work in a themed environment by connecting older unthemed controls to older applications. Older unthemed controls are shipped as User32.dll and ComCtl32.dll Version 5 (V5). User32.dll provides user controls such as buttons, scroll bars, and list boxes. ComCtl32.dll provides shell common controls such as toolbars, list views, and tree views.
图4中操作流程开始于装载操作402,其中应用程序在系统上开始运行。启动处理的部分是控件库的动态连接。连接是在程序模块和子例行程序的库之间联合引用的过程,以创建已准备在计算机上运行的装载模块。在装载操作402之后,控件转换到显示清单检测操作404,其中其被确定应用程序是否具有与此相关的显示清单。如果没有显示清单,控制转换到连接操作406,其中传统的控件User32.dll和ComCtl32.dll V5被连接到应用程序的存储映射中。正如前述,传统的控件不是主题识觉的。The operational flow in Figure 4 begins with a load operation 402, in which an application starts running on the system. The part of the startup process is the dynamic connection of the control library. Linking is the process of associating references between program modules and libraries of subroutines to create load modules that are ready to run on a computer. After the load operation 402, control transitions to a display manifest detection operation 404, where it is determined whether the application has a display manifest associated therewith. If the manifest is not displayed, control transfers to link operation 406, where the legacy controls User32.dll and ComCtl32.dll V5 are linked into the application's memory map. As mentioned earlier, traditional controls are not theme-aware.
另一方面,如果在显示清单检测操作404中有诸如显示清单215的显示清单,则控制转换到主题模块搜索操作408,其中其被确定ComCtl32.dll V6是否是在该显示清单中被列表。如果该显示清单没有列表ComCtl32.dll V6,则控制转换到连接操作406,其中传统的控件被连接到应用程序的存储映射中。另一方面,如果ComCtl32.dll V6被列表在该显示清单中,则转换控制到连接操作410,其中ComCtl32.dll V6的主题识觉控件被连接到应用程序的存储映射中。On the other hand, if there is a display list such as
图5是一种操作流程图,其表示在主题识觉应用程序环境中将非客户窗口部件构成主题的示例性过程。图5描绘了非客户窗口部件如何可以用两种通用情况的主题特性被提供。第一种情况是其中诸如非客户窗口消息502的非客户窗口消息被直接到窗口的情况。第二种情况是当应用程序构成可以影响窗口的非客户窗口区域的API调用的时候,其要求提供非客户窗口区域。5 is an operational flow diagram illustrating an exemplary process for theming non-client widgets in a theme-aware application environment. Figure 5 depicts how non-client widgets can be provided with two general case theme properties. The first case is where a non-client window message, such as non-client window message 502, is directed to a window. The second case is when an application asks for a non-client window area when it makes API calls that can affect the non-client window area of the window.
在第一种情况下,当产生非客户窗口消息502时,目标窗口的非客户区域可以需要被提供。窗口的非客户区域一般具有一个或多个非客户图形部件,例如最小化框,窗口框架,和关闭框。非客户窗口消息502能够是被送到窗口的任何消息,包括但不局限于测量或者提供消息。例如,当计算机用户重新确定目标窗口的大小时,非客户窗口消息502被送到该窗口,请求该窗口应当以新的大小被重新提供。非客户窗口消息502通常是由应用程序接收的,其使用诸如APP2139的目标窗口。以非客户窗口消息502为基础,诸如APP2 139的应用程序可以进行激活,例如调节其GUI的外表。然后非客户窗口消息502被UserAPIHook 506截取,其将该消息路由到主题管理器216。UserAPIHook 506可以是一部分主题管理器216。主题管理器216解释非客户窗口消息502。根据该非客户窗口消息502,主题管理器216可以做有关非客户窗口部件之尺寸的测量,并且可以使用在共享主题数据252中的主题特性以提供窗口的非客户区域。In the first case, the non-client area of the target window may need to be provided when the non-client window message 502 is generated. The non-client area of a window typically has one or more non-client graphical components, such as minimize boxes, window frames, and close boxes. A non-client window message 502 can be any message sent to a window, including but not limited to measurement or provide messages. For example, when a computer user resizes a target window, a non-client window message 502 is sent to the window requesting that the window should be re-rendered at the new size. Non-client window messages 502 are typically received by applications that use a target window such as APP2139. Based on the non-client window message 502, an application such as
继续图5的例子,当诸如APP2 139的应用程序或者应用程序的控件做API调用时,该结果可以影响窗口的非客户区域。在这种情况下,非客户窗口区域可以是使用主题特性被重新提供的。对于主题识觉应用程序,例如应用程序139,诸如API调用503的API调用可以构成USER32 208。API调用503可以是任何API调用,包括但不局限于先前讨论的任何API函数。例如,“MoveWindow()”API调用能够改变窗口的大小,地点和z排序(ordering),其要求重新画出窗口框架。当主题是活动时,USER32 208在接收API调用503时将API调用503路由到UserAPIHook 506。然后UserAPIHook 506将API调用503路由到主题管理器216。主题管理器216解释API调用503和进行有关窗口框架之尺寸的测量计算。然后,如果需要的话,主题管理器216使用共享的主题数据252以用主题特性提供具有非客户窗口区域。Continuing the example of FIG. 5, when an application such as
在图5的实施例中,USER32 208操作用于诸如图1之APPI 138的主题应用和诸如APP2 139的非主题应用两者的非客户API和消息,如图5所示。图5所示的消息流对于非主题应用和主题应用是相同的。因此,窗口的非客户图形部件是与该应用程序是否是主题识觉无关而构成主题的。In the embodiment of FIG. 5,
重要地是,UserAPIHook操作506修改提供请求到主题管理器216,其能够使用共享主题数据252以用主题特性提供窗口的非客户区域。正如前面讨论的,对于窗口部件,主题特性数据能够通过将特性加到“.msstyles”文件上被很容易地附加上。这允许大量的用于非客户窗口部件的不用改变控件软件的主题。Importantly, UserAPIHook operation 506 modifies the render request to
本发明的各种实施例的逻辑操作实现为(1)一系列的计算机实现活动或者在计算系统上运行的程序模块和/或(2)在计算系统中互连的机器逻辑电路或者电路模块。该实现是选择的问题,其依赖于实现本发明的计算系统的性能要求。因此,这里要说明的构成本发明实施例的逻辑操作被变化地称为操作,结构装置,活动或者模块。本领域技术人员可以认识到,这些操作,结构装置,活动和模块可以以软件,硬件,专用目的数字逻辑和其任何组合来实现,而不脱离在所附权利要求限定的本发明的精神和范围。The logical operations of various embodiments of the invention are implemented as (1) a series of computer-implemented activities or program modules running on a computing system and/or (2) machine logic circuits or circuit modules interconnected in a computing system. The implementation is a matter of choice, depending on the performance requirements of the computing system implementing the invention. Therefore, the logical operations constituting the embodiments of the present invention to be described herein are referred to variously as operations, structural means, activities or modules. Those skilled in the art can realize that these operations, structural devices, activities and modules can be implemented in software, hardware, special purpose digital logic and any combination thereof without departing from the spirit and scope of the present invention defined in the appended claims .
根据包括附图说明书的综述,对本领域的技术人员来说本发明的替换实施例将变得清楚。因此,本发明的范围是通过所附权利要求而不是前面的说明来限定。Alternative embodiments of the present invention will become apparent to those skilled in the art from the review, including the description of the figures. Accordingly, the scope of the invention is defined by the appended claims rather than the foregoing description.
尽管本发明已经用专用于计算机结构特征的语言,方法作用和通过计算机可读媒体进行了说明,应当理解,在所附权利要求限定的本发明并不必要局限于所说明的专用结构,作用或者媒体。作为例子,其它决定方法可以被包括在与控件提供模块结合的汇合点处理中。因此,专用结构特征,作用和媒体作为实现所要求权利之本发明的示例性实施例。Although the invention has been described in language specific to computer structural features, methodological functions, and computer-readable media, it should be understood that the invention as defined in the appended claims is not necessarily limited to the specific described structural, functional or media. As an example, other decision methods may be included in the junction processing in conjunction with the control providing module. Accordingly, the dedicated structural features, acts and mediums serve as exemplary embodiments for implementing the claimed invention.
上述的各种实施例是方便说明而提供的,其不应当被解释为限制本发明。本领域的技术人员将容易认识到构成本发明的各种改进和变化,而不用按照在此所说明和描述的例子实施例和应用,并且不脱离下面权利要求中提出的本发明的真正精神和范围。The above various embodiments are provided for convenience of description, and should not be construed as limiting the present invention. Those skilled in the art will readily recognize various modifications and changes that constitute the present invention without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and nature of the invention as set forth in the following claims. scope.
Claims (17)
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US19559300P | 2000-04-06 | 2000-04-06 | |
| US19551200P | 2000-04-06 | 2000-04-06 | |
| US60/195,593 | 2000-04-06 | ||
| US60/195,512 | 2000-04-06 | ||
| US09/670,791 | 2000-09-27 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB2006101006049A Division CN100476724C (en) | 2000-04-06 | 2001-04-06 | Subject awareness management using Rendezvous |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1322993A CN1322993A (en) | 2001-11-21 |
| CN1311346C true CN1311346C (en) | 2007-04-18 |
Family
ID=26891037
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB011216972A Expired - Fee Related CN1311346C (en) | 2000-04-06 | 2001-04-06 | A method for providing graphic control and a theme management system |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1311346C (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9785486B2 (en) * | 2006-04-17 | 2017-10-10 | Edda Technology, Inc. | Methods for enabling an application within another independent system/application in medical imaging |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1248016A (en) * | 1998-09-16 | 2000-03-22 | 英业达股份有限公司 | Method of Realizing Graphical Interface Simulation in Single Task System |
-
2001
- 2001-04-06 CN CNB011216972A patent/CN1311346C/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1248016A (en) * | 1998-09-16 | 2000-03-22 | 英业达股份有限公司 | Method of Realizing Graphical Interface Simulation in Single Task System |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1322993A (en) | 2001-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8458608B2 (en) | Focus state themeing | |
| US6873337B1 (en) | Application programming interface for changing the visual style | |
| US6992681B2 (en) | Theme aware management using fusion | |
| US6795089B2 (en) | Dynamic, live surface and model elements for visualization and modeling | |
| US7565611B2 (en) | Binary cache file format for themeing the visual appearance of a computer system | |
| JP4825869B2 (en) | Method and apparatus for grouping and managing application windows | |
| CN1146787C (en) | User interface orienting to hybrid task and file | |
| US7694229B2 (en) | System and theme file format for creating visual styles | |
| JP4643931B2 (en) | Web page rendering mechanism using themes based on external programs | |
| US7900215B2 (en) | Method and apparatus for providing inter-application accessibility | |
| US7426734B2 (en) | Facilitating presentation functionality through a programming interface media namespace | |
| EP1143334A2 (en) | Theme aware graphical user interface | |
| JP2005129022A (en) | Programming interface of computer platform | |
| WO2005022335A2 (en) | Space-optimizing content display | |
| JP2008282392A (en) | Method, system and medium for establishing context based software layer | |
| US20100023954A1 (en) | Generic User Interface Command Architecture | |
| CN1311346C (en) | A method for providing graphic control and a theme management system | |
| US20100192074A1 (en) | Pluggable margin extension | |
| WO2005022337A2 (en) | Extensible user interface | |
| Duszyński | Unlocking. NET MAUI’s Potential | |
| Jgr | Programming With C#. Net | |
| Theobald | Tcl/Tk in a Nutshell | |
| WO2005022333A2 (en) | Event notification |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150505 |
|
| C41 | Transfer of patent application or patent right or utility model | ||
| TR01 | Transfer of patent right |
Effective date of registration: 20150505 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |
|
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070418 Termination date: 20160406 |