JP2925734B2 - How to determine window size or move window - Google Patents

How to determine window size or move window

Info

Publication number
JP2925734B2
JP2925734B2 JP3513930A JP51393091A JP2925734B2 JP 2925734 B2 JP2925734 B2 JP 2925734B2 JP 3513930 A JP3513930 A JP 3513930A JP 51393091 A JP51393091 A JP 51393091A JP 2925734 B2 JP2925734 B2 JP 2925734B2
Authority
JP
Japan
Prior art keywords
window
message
application
mouse
processing
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 - Lifetime
Application number
JP3513930A
Other languages
Japanese (ja)
Other versions
JPH04505681A (en
Inventor
ブシエ,アラン
マリー―サント,アラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Publication of JPH04505681A publication Critical patent/JPH04505681A/en
Application granted granted Critical
Publication of JP2925734B2 publication Critical patent/JP2925734B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はウィンドウのサイズの決定(sizing,寸法の
決定)又はウィンドウ移動の方法に関している。
Description: FIELD OF THE INVENTION The present invention relates to a method of sizing a window or moving a window.

[従来の技術及び発明が解決しようとする課題] ウィンドウのサイズの決定又は移動の方法としては、
マイクロソフト社の“Windows",“Windows NT",及びIBM
社の“OS2"のマルチウィンドウ,マルチタスクプログラ
ムが公知である。この種のプログラムは、ウィンドウが
サイズを決められかつ移動せしめられる時、その他のウ
ィンドウで実行中のアプリケーションの展開(developm
ent)をブロックする欠点を有している。
[Problems to be Solved by the Related Art and the Invention] As a method of determining or moving a window,
Microsoft “Windows”, “Windows NT”, and IBM
A multi-window, multi-task program of "OS2" is well known. This type of program can be used to deploy applications running in other windows (developm
ent).

本発明の目的は、この欠点を克服することにある。 It is an object of the present invention to overcome this disadvantage.

[課題を解決するための手段] この目的は、次の事実、即ち“Windows"等のウィンド
ウ管理プログラム下で動作するアプリケーションにおけ
るウィンドウサイズの決定又はウィンドウ移動の方法が
具体的なメッセージをインタセプトするフィルタをウィ
ンドウ管理プログラムのコア部とウィンドウ管理プログ
ラム下で実行される種々のアプリケーションとの間に挿
入することと、特定アプリケーションによりこれらのメ
ッセージを処理することと、ウィンドウ管理プログラム
の側で何の動作もトリガせずかつこの他のアプリケーシ
ョンの実行をブロックしないニュートラルメッセージ
(neutral message)をウィンドウ管理プログラムに送
ることとによって達成される。
Means for Solving the Problems The object of the present invention is to provide a filter which intercepts a specific message in a method of determining a window size or moving a window in an application operating under a window management program such as "Windows". Between the core of the window manager and the various applications running under the window manager, processing these messages by specific applications, and taking no action on the part of the window manager. This is accomplished by sending a neutral message to the window manager that does not trigger and does not block the execution of this other application.

他の特徴によれば、特定アプリケーションによって行
われる処理は発生し得る特定の事象の各々を処理するこ
とから成るが、それは潜在的にはウィンドウの移動とい
う事象又はウィンドウサイズの決定という事象に対応
し、この処理時間内に多数のパラメータ、W_Top、W_Rig
ht、W_Bottom、W_Left、W_Caption、Frm_CurPos、h_Wnd
Currの初期化を可能とする特定のファンクションを呼び
出すことから成り、それらのパラメータは後の事象が生
じる迄格納されて、距離終了をトリガする。
According to another feature, the processing performed by a particular application comprises processing each of the specific events that may occur, which potentially correspond to the event of moving a window or determining the size of a window. , Many parameters within this processing time, W_Top, W_Rig
ht, W_Bottom, W_Left, W_Caption, Frm_CurPos, h_Wnd
Consisting of calling specific functions that allow the initialization of Curr, those parameters are stored until a later event occurs, triggering the end of distance.

他の特徴によれば、格納されたパラメータは以下のも
の、即ち、 任意のウィンドウで動作が開始されたことを示す変数
である“h_WndCurr"=“h_WndCurrent"と、 アイコンがロードされたのを記憶する“b_LoadedIco
n"と、 アイコンの場合、メニュー実行であるか又はアイコン
移動フェーズ(icon move phase)であるかどうかを
示す変数である“h_WndMenu"と、 アプリケーションが開始されかつこのアプリケーショ
ンの特定カーソルが置換される前に、ウィンドウ管理プ
ログラムの能動カーソル(active cursor,活動カーソ
ル)の識別子が記憶されるのを可能にする変数である
“h_OldCursor"と、 サイズの決定、フレーミング、及び最小幅を定めるそ
れぞれの間のウィンドウの座標変数である“w_CXScree
n"、“w_CYScreen"、"w_CXframe"、“w_CYMinHeight"、
“w_CXMinWidth"と、 現行フレームポジション変数である“Frm_CurPos"
と、 現行マウスポジション変数である“Mse_CurPos"と、 新ウィンドウ及び方向テストの座標を計算するために
用いられる方向変数である“w_Left"、“w_Top"、w_Rig
ht"、w_Bottom"、“w_Caption"と、 ウィンドウの初期位置を定義する変数である“Wnd_St
artPos"と、カーソルの初期位置を定義する変数である
“Mse_StartPos"と、開始時に偽であると仮定されたブ
ール変数である“b_Cursor及び“b_LoadedIcon"と、 である。
According to another feature, the stored parameters are the following: "h_WndCurr" = "h_WndCurrent", a variable indicating that the operation has started in any window, and remember that the icon has been loaded “B_LoadedIco
n "and, for icons," h_WndMenu "which is a variable indicating whether it is a menu execution or an icon move phase, the application is started and the specific cursor of this application is replaced Previously, the variable "h_OldCursor", which allows the identifier of the active cursor of the window manager to be stored, and the size, framing and minimum width between each "W_CXScree" which is the window coordinate variable
n "," w_CYScreen "," w_CXframe "," w_CYMinHeight ",
“W_CXMinWidth” and the current frame position variable “Frm_CurPos”
And the current mouse position variable "Mse_CurPos" and the direction variables "w_Left", "w_Top" and w_Rig used to calculate the coordinates of the new window and direction test.
ht ", w_Bottom", "w_Caption" and "Wnd_St" which are variables that define the initial position of the window
"artPos", a variable "Mse_StartPos" that defines the initial position of the cursor, and "b_Cursor and" b_LoadedIcon ", which are Boolean variables assumed to be false at the start.

他の特徴によれば、二つのフィルタがある。第1の
“WM_GETMESSAGE"フィルタは、ハードウェアの割り込み
によって通知された(posted by hardware)以下の様
なメッセージ WM_NCLBUTTONDOWN、 WM_MOUSEMOVE、 WM_KEYDOWN、 WM_SYSKEYDOWN、 が受け取られることを可能にし、 また第2の“WH_CALLWNDPROC"フィルタは、方法に送
られた以下の様なメッセージ WM_SYSCOMMAND、 WM_ACTIVATEAPP、 WM_NCACTIVATE、 WM_ACTIVATWE、 がフィルタされかつ受け取られることを可能にする、 他の特徴によれば、メッセージをインタセプトするこ
とは、各メッセージにとって特定のプログラムの処理を
トリガし、格納されたパラメータ、及び、それ自体がユ
ティリティファンクションを呼び出す以下のごとき主要
処理ファンクション、 処理初期化のABMSInit、 ウィンドウ移動のABMSMove、 処理終了のABMSEnd、 を参加させる。
According to another feature, there are two filters. The first "WM_GETMESSAGE" filter allows the following messages WM_NCLBUTTONDOWN, WM_MOUSEMOVE, WM_KEYDOWN, WM_SYSKEYDOWN, posted by hardware to be received, and a second "WH_CALLWNDPROC" The filter enables the following messages sent to the method WM_SYSCOMMAND, WM_ACTIVATEAPP, WM_NCACTIVATE, WM_ACTIVATWE, to be filtered and received.According to other features, intercepting messages is Trigger the processing of a specific program, and join the stored parameters and the following main processing functions that themselves call the utility function: ABMSInit for processing initialization, ABMSMove for window movement, and ABMSEnd for processing end.

他の特徴によれば、ABMSInitファンクションは、メッ
セージ“WM_NCLBUTTONDOWN"と、“WM_SYSCOMMAND"に依
存するメッセージ“SC_SIZE"とを処理するためのみに実
行される。
According to another feature, the ABMSInit function is only executed to process the message "WM_NCLBUTTONDOWN" and the message "SC_SIZE" which depends on "WM_SYSCOMMAND".

他の特徴によれば、ABMSEndファンクションは、“WM_
LBUTTONUP"と、“WM_SYSKEYDOWN"に依存するメッセージ
“VK_ESCAPE"及び“VK_RETURN"とを処理するためのみに
実行される。
According to another feature, the ABMSEnd function returns "WM_
LBUTTONUP "and the messages" VK_ESCAPE "and" VK_RETURN "depending on" WM_SYSKEYDOWN ".

他の特徴によれば、ABMSMoveファンクションは、“WM
_SYSKEYDOWN"に依存するメッセージである“WM_MOUSEMO
VE、MK_LEFT、VK_UP、VK_RIGHT、及びVK_DOWN"メッセー
ジを処理するためのみに実行される。
According to another feature, the ABMSMove function returns "WM
"WM_MOUSEMO", a message that depends on "_SYSKEYDOWN"
Executed only to process VE, MK_LEFT, VK_UP, VK_RIGHT, and VK_DOWN "messages.

他の特徴によれば、ABMSInitファンクションは、“SE
TCAPTURE"命令によってマウスメッセージを適合させる
ことと、次いで該ウィンドウが親ウィンドウの子ウィン
ドウであるかどうか、即ちこの子ウィンドウの移動を限
定するためにこの親ウィンドウにウィンドウが書き込ま
れているかどうかを確認することと、次いでウィンドウ
の初期座標とカーソルの位置とを初期化して現行座標と
することと、さらにウィンドウの特性パラメータ(w_CX
frame、w_CXMinWidth、w_CYMinHeight)を初期化するこ
ととからなる。
According to another feature, the ABMSInit function returns “SE
Adapt the mouse message with the "TCAPTURE" command, and then check if the window is a child of the parent window, ie, if a window has been written to this parent window to limit the movement of this child window And then initialize the initial coordinates of the window and the position of the cursor to the current coordinates, and furthermore, the characteristic parameters of the window (w_CX
frame, w_CXMinWidth, w_CYMinHeight).

他の特徴によれば、この方法は、以下の各段階を備え
ている。即ち、 フィルタの能動モードへの遷移と、 そこへメッセージが送られる“h_Wnd"ウィンドウの識
別子を記憶することと、 記憶がHitTestファンクション及びABMSInitファンク
ションによって達成される、このクリックゾーンから生
じる種類の動作を記憶することと、後続のマウスメッセ
ージを当該ウィンドウに適合させることと、 InvertBlock手続きによってウィンドウの周囲にゴー
ストフレームを最初に描くことと、 メッセージを置換えてウィンドウ管理プログラムの側
で処理されずかつ何の動作もトリガしない“WM_ENTERID
LE"メッセージを代用することによってメッセージをニ
ートラルにすることと、 を備えている。
According to other features, the method comprises the following steps. That is, the transition of the filter to the active mode, storing the identifier of the "h_Wnd" window into which the message is sent, and the kind of action resulting from this click zone, where the storage is achieved by the HitTest and ABMSInit functions. Remembering, adapting subsequent mouse messages to the window, drawing a ghost frame around the window first with the InvertBlock procedure, replacing the message with a message that is not processed by the window manager and “WM_ENTERID that does not trigger any action
Making the message neutral by substituting the LE "message.

他の特徴によれば、この方法は、以下の各段階を備え
ている。即ち、 InvertBlockによってゴーストを消去しながら、ABMSC
omputNewPos手続きによってウィンドウの最終座標を計
算することと、 ABMSMoveファンクションによって最終位置にウィンド
ウを描くことと、ABMSEndファンクションによって記憶
パラメータをゼロにリセットすることと、 を備えている。
According to other features, the method comprises the following steps. In other words, while removing ghosts by InvertBlock, ABMSC
Computing the final coordinates of the window with the omputNewPos procedure, drawing the window at the final position with the ABMSMove function, and resetting the storage parameters to zero with the ABMSEnd function.

最終的な特徴によれば、この方法はまた、以下各段階
を備えている。即ち、 “Release Capture"命令によるマウスメッセージの
オーナシップの放棄と、 フィルタの能動モードへの移行と、 を備えている。
According to a final feature, the method also comprises the following steps. In other words, it has a function of abandoning the ownership of the mouse message by the “Release Capture” command and shifting the filter to the active mode.

[実施例] 本発明の他の特徴及び利点は図面に関する以下説明に
よってより明確に理解されよう。
Embodiments Other features and advantages of the present invention will be more clearly understood from the following description with reference to the drawings.

本発明は、複数のアプリケーションプログラム及びウ
ィンドウ管理プログラムを処理するためのCPU(中央処
理装置)又はプロセッサ、ウィンドウを表示しかつアプ
リケーションプログラムの各種出力等を表示するための
ディスプレイモニタ、並びに、割り込みを発生し得るキ
ーボードリソース及びマウスの入力装置を備えているコ
ンピュータ装置上で動作するマルチタスク、マルチウィ
ンドウプログラムの改良に関している。
The present invention provides a CPU (Central Processing Unit) or processor for processing a plurality of application programs and window management programs, a display monitor for displaying windows and various outputs of the application programs, and generating an interrupt. The present invention relates to an improvement of a multitasking, multiwindow program running on a computer device provided with possible keyboard resources and a mouse input device.

また、周知の様にこの種のコンピュータ装置は外部記
憶装置を備えており、この装置にはOS,“Windows"管理
プログラム及びアプリケーションプログラムが記憶され
(IBM社のOS/2は、OSとウィンドウ管理プログラムとを
含む。)、コンピュータの起動時にCPU内部の記憶装置
(内部メモリ)にOSの一部、更に“Windows"管理プログ
ラムが実行されると、その一部が記憶装置にロードされ
る。
As is well known, this type of computer device has an external storage device, which stores an OS, a “Windows” management program and an application program (IBM OS / 2 is an OS and a window management device). When the computer is started, when a part of the OS and a "Windows" management program are executed in a storage device (internal memory) inside the CPU, a part thereof is loaded into the storage device.

いくつかのアプリケーションが、アプリケーション当
り一つ又はそれ以上のウィンドウとともに実行されるの
を可能にするプログラムの動作を示している図5の従来
の技術では、多数の欠陥が認められる。これにより、マ
イクロソフト社“Windows",“Windows NT"環境又はOS2
(IBM社)において、ウィンドウ管理プログラム(例え
ば、“Windows"管理プログラム)のコア(1)は、種々
のアプリケーション即ちタスク(T1、T2、T3)即ち(2
0、21、23)の方向に夫々メッセージ(30、31)を送
る。ウィンドウ管理プログラムのコア(1)は、メッセ
ージ(30、31)が、活動状態となったタスク、例えば図
5の場合はタスク(T1)及び(T3)へ送られ、かつそれ
ぞれのタスクにアドレスされたこれらのメッセージがそ
れぞれの待ち行列(Q1、Q3)にスタックされるのを可能
にする。ウィンドウ管理プログラムのコア(1)はプロ
セッサをアプリケーションに帰属させ、アプリケーショ
ンは次いで待ち行列化されたメッセージを管理し、処理
し、待ち行列が空になった場合、タスクはプロセッサを
ウィンドウ管理プログラムのコア(1)へ送って、プロ
セッサを他の活動化されているアプリケーションに帰属
できるようにする。各アプリケーション(T1、T3)は、
関連したウィンドウ(F1、F3)を備えている。各ウィン
ドウは、可視又は不可視のオブジェクトを構成する。ア
プリケーションのウィンドウに関する種々のメッセージ
に対するウィンドウの使用又はリアクションモードを構
成する方法が、各ウィンドウと対応付けられている。こ
の方法は各メッセージを処理し、結果としての動作を実
行するプログラムである。このプログラムは、これらの
メッセージのいくつかを処理するか、又はいくつかの他
のメッセージがウィンドウ管理プログラムによって処理
されるのを許可するかを選択し得る。後者の場合には、
アプリケーションプログラムはウィンドウ管理プログラ
ムのコア(1)のファンクション(13)にメッセージ
(33)を送ることを要求し、さらにこのファンクション
は“default Windows Proc,"(デフォルトウィンドウ
プロセッサ)と呼ばれる。ウィンドウ管理プログラムの
コア(1)はこれらの具体的なメッセージを認識するこ
とができ、さらに例えばウィンドウサイズを決めたり、
又はウィンドウを移動させる場合には標準処理(standa
rd processing)を実行する。このため、ウィンドウサ
イズを決めたいとするオペレータは、ハードウエアを割
込ませることによって多数のメッセージを生成するシス
テム“mouse"(マウス)を実行する。これらのメッセー
ジは、例えば関連するアプリケーションの待ち行列(Q
1)に送られ、スタックされる。この待ち行列を処理す
る時、プログラムはこれらのメッセージをウィンドウの
方法に送り、さらにマウスが位置する所、即ちウィンド
ウのエッジ上か中間部内か又はメニューゾーン上かを見
つけ出そうとする。この位置によっては、この方法は多
数の異なるメッセージを生成する。
A number of deficiencies are found in the prior art of FIG. 5, which illustrates the operation of a program that allows some applications to be executed with one or more windows per application. With this, Microsoft “Windows”, “Windows NT” environment or OS2
At (IBM), the core (1) of the window manager (eg, the "Windows" manager) is composed of various applications or tasks (T1, T2, T3) or (2
The messages (30, 31) are sent in the directions of 0, 21, and 23), respectively. The core of the window manager (1) is that the message (30, 31) is sent to the activated task, for example tasks (T1) and (T3) in the case of FIG. 5, and is addressed to each task. Allows these messages to be stacked in their respective queues (Q1, Q3). The window manager core (1) attaches the processor to the application, which then manages and processes the queued messages, and when the queue becomes empty, the task causes the processor to assign the processor to the window manager core. To (1) so that the processor can be attributed to other activated applications. Each application (T1, T3)
It has associated windows (F1, F3). Each window constitutes a visible or invisible object. Associated with each window is a method for configuring the use or reaction mode of the window for various messages relating to the application's window. The method is a program that processes each message and performs the resulting action. The program may choose to process some of these messages or allow some other messages to be processed by the window manager. In the latter case,
The application program requests that the message (33) be sent to the function (13) of the window management program core (1), and this function is called "default Windows Proc," (default window processor). The window management program core (1) can recognize these specific messages and further determine, for example, the window size,
Or, when moving a window, use standard processing (standa
rd processing). For this reason, an operator who wants to determine the window size executes a system "mouse" (mouse) which generates a large number of messages by interrupting hardware. These messages are stored, for example, in the queue (Q
Sent to 1) and stacked. When processing this queue, the program sends these messages to the window method and tries to find out where the mouse is located, either on the edge of the window, in the middle, or on the menu zone. Depending on the location, the method produces a number of different messages.

マウスがウィンドウのエッジ上にある場合、そのため
に生じる割込みはメッセージ“WM_LBUTTONDOWN"を生成
する。この方法がこのメッセージを回復する時、その方
法がこのメッセージをファンクション(13)の“Def W
indow Proc"に送り、ウィンドウ管理プログラムにハン
ドオフする。この特定のメーセージを検出するウィンド
ウ管理プログラムは、そこからメッセージが得られたそ
のウィンドウのゾーンを見つけ出し、さらに場合によっ
ては、“WM_SIZE"(ウィンドウサイズの決定に対応す
る)又は“WM_MOVE"(ウィンドウを移動させることに対
応する)のごとき多数のメッセージを生成し、さらにこ
れらのメッセージを迅速に処理することができるように
マウスからの次に続くメッセージを待機する。
If the mouse is over the edge of the window, the resulting interrupt will generate the message "WM_LBUTTONDOWN". When this method recovers this message, it sends this message to function (13) “Def W
indow Proc "and handoff to the window manager. The window manager that detects this particular message finds the zone of the window from which the message was obtained and, in some cases," WM_SIZE "(window size To generate a large number of messages, such as "WM_MOVE" (corresponding to moving the window), and to process these messages quickly, so that subsequent messages from the mouse can be processed quickly. To wait.

送られたメッセージ(30、31)は、ウィンドウ管理プ
ログラムのコア(1)によって直接アプリケーションに
送られるシステムメッセージか、割込み後にしばしば生
成される、例えばマウスメッセージ又はキーボードメッ
セージのごときハードウエアからのメッセージかのいず
れであり得る。方法がメッセージを「Def Wnd Proc」
ファンクションへ送り、ファンクション(13)がメッセ
ージの処理を終了できるようにする、ウィンドウのサイ
ズ決定または移動に関する他の情報がこのファンクショ
ンに到達していない限り、プロセッサはこのファンクシ
ョンの実行を継続し、これを放棄せず、他のメッセージ
を待つ。これには他のタスクを処理するプロセスをブロ
ックするという欠点がある。この欠点が特に問題となる
のは、リアルタイムアプリケーション、たとえばリアル
タイム監視または警報制御(alarm control)の場合で
ある。このタイプのアプリケーションにおいては、キー
ボードを使用したウィンドウのサイズ決定または移動挙
動が起動し、さえぎられたオペレータがそのオペレータ
がキーボードまたはマウスを使用して自分のウィンドウ
のサイズ決定またはウィンドウの移動処置を完了できな
い全期間の間、すべての他のアプリケーションをブロッ
クすることとなる。
The messages (30, 31) sent may be system messages sent directly to the application by the window manager core (1), or messages generated from hardware, such as mouse or keyboard messages, often generated after an interrupt. It can be any of How to message "Def Wnd Proc"
The processor will continue to execute this function as long as no other information about window sizing or movement has been reached in this function, sending it to the function and allowing function (13) to finish processing the message. Don't give up and wait for another message. This has the disadvantage of blocking the process that handles other tasks. This disadvantage is particularly problematic in real-time applications, such as real-time monitoring or alarm control. In this type of application, a window sizing or moving behavior using the keyboard is triggered, and the interrupted operator completes his window sizing or window moving action using the keyboard or mouse. You will block all other applications for the entire period of time you cannot.

従って、本発明の目的はこの欠点を取り除き、コンピ
ュータ装置のCPUを効率よく動作させることにある。フ
ィルタ(4)がCPU内部メモリ等の記憶装置の一部に割
り当てられた種々のアプリケーション(20、21、22)と
同様に記憶装置の他の部分に割り当てられたウィンドウ
管理プログラムのコア(1)の間に設置され、いくつか
のメッセージが通過する時、このフィルタがABMSアプリ
ケーション(5)によってこれらのメッセージの処理を
確実にするウィンドウ管理プログラムのコアに引っ掛け
られて(hooked)いることを示している図1の構成を提
供する。それ故、ウィンドウ管理プログラムのコアによ
りアプリケーションA、B、C(20、21、22)へ送られ
たメッセージ(301、321、331)はフィルタ(4)へ入
力され、活動化または非活動化に応じて、ABMSによって
伝送されるか、処理されるかする。フィルタが活動状態
の場合は、いくつかの種類のメッセージはメッセージの
形態をとってアプリケーションAに(304で)、アプリ
ケーションBに(324で)、及びアプリケーションCに
(314で)伝送される。図2及び図4に示されるよう
に、メッセージ(301、321、311)の一つが特定の事象
(50、51、52、53)に対応する場合に、このメッセージ
は、以下に示されるようにアプリケーションABMS(5)
によってインタセプトされ、処理される。
Accordingly, it is an object of the present invention to eliminate this disadvantage and to operate the CPU of the computer device efficiently. A window management program core (1) in which the filter (4) is allocated to another part of the storage device as well as various applications (20, 21, 22) allocated to a part of the storage device such as a CPU internal memory. Indicating that this filter is hooked by the ABMS application (5) to the core of the window manager that ensures the processing of these messages when some messages pass through 1 is provided. Therefore, the messages (301, 321, 331) sent by the core of the window manager to the applications A, B, C (20, 21, 22) are input to the filter (4) and activated or deactivated. Depending on whether they are transmitted or processed by the ABMS. When the filter is active, some types of messages are transmitted in the form of messages to application A (at 304), application B (at 324), and application C (at 314). As shown in FIGS. 2 and 4, if one of the messages (301, 321, 311) corresponds to a particular event (50, 51, 52, 53), this message will be as shown below. Application ABMS (5)
Is intercepted and processed.

それ故、本発明はウィンドウ管理プログラムが提供す
るメッセージフィルタに基づくものである。これらのフ
ィルタによって、アプリケーションに特定のタイプの事
象に対応したすべてのメッセージの経路を通知すること
ができ、またこれらのメッセージを変更または置き換え
てから、真の宛先に到着するようにすることができる。
Therefore, the present invention is based on the message filter provided by the window management program. These filters can inform applications of the path of all messages corresponding to a particular type of event, and can modify or replace these messages before reaching their true destination. .

それ故、ABMSアプリケーション(5)はこれらの特定
のフィルタのうちの二つを使用する。ウィンドウ管理プ
ログラムがすべてのメッセージをメッセージファミリに
分類し、本件に関するメッセージはこれらファミリの二
つに属するものであるから、二つのフィルタは本件に関
する場合に考えられるすべてのメッセージをカバーして
いる必要がある。「WM_GETMESSAGE」フィルタ(400、ア
ペンディクス1)はハードウェア割込み、すなわちマウ
スまたはキーボードによって通知された、アプリケーシ
ョン待ち行列に通常おかれているメッセージの受取りを
可能とする。他の「WH_CALLWNPROC」(401、アペンディ
クス1)はアプリケーションの方法へ直接送られたすべ
てのメッセージをフィルタして、受け取ることを可能と
する。これらのフィルタはABMSアプリケーションがイン
ストールされるときに初期化されるが、これらのインス
トールは図2およびアペンディクス1において符号(4
0)で示されており、「SETWINDOWSHOOK」機能によって
実行される。ABMSアプリケーションが終了すると、フィ
ルタが削除され、この削除は図2およびアペンディクス
1において符号(41)で示されており、「UNHOOKWINDOW
SHOOK」機能によって行われる。インストールされたこ
れらのフィルタは受動的、すなわちメッセージに影響を
及ぼさないものであるか、能動的、すなわち特別な種類
の処理をいくつかの特定の事象から生じさせるものであ
る。フィルタが受動的なものである場合、フィルタに到
着するメッセージ(301、321、311)はアプリケーショ
ンへ、分配形態で伝送され、能動的な場合、フィルタは
メッセージを処理のためにABMSへ送る。
Therefore, the ABMS application (5) uses two of these specific filters. Since the window manager categorizes all messages into message families and the messages in this case belong to two of these families, the two filters need to cover all possible messages in this case. is there. The "WM_GETMESSAGE" filter (400, Appendix 1) allows for the receipt of hardware interrupts, ie messages normally posted in the application queue, notified by a mouse or keyboard. The other "WH_CALLWNPROC" (401, Appendix 1) allows to filter and receive all messages sent directly to the application's method. These filters are initialized when the ABMS application is installed, but their installation is indicated in FIG.
0) and is performed by the "SETWINDOWSHOOK" function. When the ABMS application terminates, the filter is deleted, and this deletion is indicated by reference numeral (41) in FIG.
SHOOK ”function. These filters installed are either passive, ie, do not affect the message, or are active, ie, cause special types of processing to occur from some particular event. If the filter is passive, the messages arriving at the filter (301, 321, 311) are transmitted to the application in a distributed fashion; if active, the filter sends the message to the ABMS for processing.

ABMSが考慮するオプションはアクション、用いられる
手段、および走査されたウィンドウの状況を表す三次元
テーブル(図3)に分類されるいくつかのシナリオに分
割できる。ABMSアプリケーションを実現するには、いく
つかの問題点を解決する必要があるが、これらのうちい
くつかは一般的なものであって、以下で説明するもので
あり、他はシナリオに特定のものであって、図3の対応
する枠に示されている。
The options that ABMS considers can be broken down into a number of scenarios, categorized into three-dimensional tables (FIG. 3) that represent the actions, the means used, and the status of the scanned window. There are several issues that need to be resolved to realize an ABMS application, some of which are generic and described below, others are specific to the scenario. And is shown in the corresponding box in FIG.

一般的な問題点はESCキーによってキャンセルされた
場合に、アクションを終了することに関連している。こ
の時点で、初期状況の回復はABMSアプリケーションに残
っている変数によって構成されるいくつかの情報片を記
憶することを想定している。他の問題点はキーボード/
マウスシナリオの相互浸透である。実際には、キーボー
ドおよびマウスのシナリオの間のフロンティアはシール
されていないので、これらの手段の一つによる再起動処
理をいつでも他のものによって継続することができる。
ABMSはこの柔軟性を考慮に入れている。処理される各メ
ッセージは、変数の内容を変更することにより、あるい
はABMSのデータゾーンに定義されたパラメータを操作す
ることにより、アプリケーションの一般的なコンテキス
トを発展させ、これらの変数を他のメッセージが引き継
ぐことのできる、明確に定義された状況に残す。これら
の変数は次のように表される。
A common problem relates to terminating an action if canceled by the ESC key. At this point, the initial situation recovery assumes that the ABMS application stores some pieces of information composed of the remaining variables. Another problem is the keyboard /
Mutual penetration of mouse scenarios. In fact, the frontier between the keyboard and mouse scenarios is not sealed, so that the restart process by one of these means can be continued by the other at any time.
ABMS takes this flexibility into account. Each message processed will evolve the general context of the application by changing the contents of the variables or manipulating the parameters defined in the data zone of the ABMS, and these variables will be used by other messages. Leave in a well-defined situation that can be taken over. These variables are represented as follows:

動作がウィンドウで開始されたことを示す変数である
“h_WndCurr"と、 アイコンの場合、ウィンドウがメニュー実行フェーズ
又はアイコン移動フェーズであるかどうかを示す変数で
ある“h_WndMenu"と、 このアプリケーションが開始される前にウィンドウの
活動カーソル識別子が記憶され、かつこのアプリケーシ
ョンの特定カーソルが置換されるのを可能にする変数で
ある“h_OldCursor"と、 サイズの決定、フレーミング、及び最小幅を定めるそ
れぞれの間のウィンドウ座標の変数である“w_CXScree
n"、“w_CYScreen"、“w_CXframe"、“w_CYMinHeigh
t"、“w_CXMinWidth"と、 フレームの現行位置変数である“Frm_CurPos"と、 マウスの現行位置変数である“Mse_CurPos"と、 新ウィンドウ及び方向テスト(direction tests)の
座標を計算するために用いられる方向変数である“w_Le
ft"、“w_Top"、“w_Right"、“w_Bottom"、“w_Captio
n"と、 初期ウィンドウ位置の定義変数(definition variab
le)である“Wnd_StartPos"と、 初期カーソル位置の定義変数である“Mse_StartPos"
と、 開始時に偽であると割当てられたブール変数である
“b_Cursor"及び“b_LoadedIcon"と、 である。
"H_WndCurr", which is a variable indicating that the operation was started in the window, and "h_WndMenu", which is a variable indicating whether the window is in the menu execution phase or the icon moving phase, in the case of the icon, and the application is started. The active cursor identifier of the window is stored before the call is made, and the variable between "h_OldCursor", which allows the particular cursor for this application to be replaced, and each of the variables that define size, framing, and minimum width "W_CXScree" which is a variable of window coordinates
n "," w_CYScreen "," w_CXframe "," w_CYMinHeigh
Used to calculate the coordinates of the "t", "w_CXMinWidth", the current position variable of the frame "Frm_CurPos", the current position variable of the mouse "Mse_CurPos", and the new window and direction tests. The direction variable “w_Le
ft "," w_Top "," w_Right "," w_Bottom "," w_Captio
n "and the definition variable of the initial window position (definition variab
le) “Wnd_StartPos” and the initial cursor position definition variable “Mse_StartPos”
And "b_Cursor" and "b_LoadedIcon", which are Boolean variables assigned to be false at the start.

アイコンではない、マウスだけによって行われるウィ
ンドウのサイズ決定の場合には、オペレータは以下の操
作を行わなければならない。
In the case of window sizing performed solely by the mouse, not the icon, the operator must perform the following operations.

−オペレータはマウスカーソルをウィンドウの縁部の一
つにおき、左ボタンを押したままとする。次に、マウス
を移動させるが、これには画面上でウィンドウのゴース
トを表す縁部の一つを移動させる効果がある。ユーザが
希望するサイズに達したと考えた場合には、左ボタンを
離すと、ウィンドウは再定義されたフレームに再描画さ
れる。操作の開始時に、ABMSによってインストールされ
たフィルタは当初受動状態にある。ウィンドウ管理プロ
グラムのコア(1)が送ったすべてのマウス移動メッセ
ージは分配される。カーソルがウィンドウの縁部にある
ときに、オペレータがマウスの左ボタンを押すと、ウィ
ンドウ管理プログラムは「WM_NCLBUTTONDOWN」メッセー
ジを生成する。このメッセージのパラメータはウィンド
ウ識別子と、事象が生じたゾーンを定義している値を含
んでいる。この場合、ABMSのアクションは次のようにな
る。
The operator places the mouse cursor on one of the edges of the window and keeps pressing the left button. Next, the mouse is moved, which has the effect of moving one of the edges representing the ghost of the window on the screen. If the user considers that the desired size has been reached, releasing the left button causes the window to be redrawn in the redefined frame. At the start of the operation, the filters installed by ABMS are initially passive. All mouse movement messages sent by the window manager core (1) are distributed. If the operator presses the left mouse button while the cursor is at the edge of the window, the window manager will generate a "WM_NCLBUTTONDOWN" message. The parameters of this message include the window identifier and a value defining the zone in which the event occurred. In this case, the ABMS action is as follows:

−活動モードへの移行、メッセージと初期座標が目的と
しているHWNDウィンドウの識別子の記憶。
-Entering active mode, storing the identifier of the HWND window where the message and initial coordinates are targeted.

−クリックゾーンから生じるアクションのタイプ(左、
右、上部、下部、および対角方向でのサイズ決定)の記
憶。この記憶はアペンディクス1およびアペンディスク
7において(501)という符号がつけられているプログ
ラムのABMSHitテスト部分、およびアペンディクス3に
おいて(502、403)という符号がつけられているABMSIn
itプログラムによって行われる。
The type of action resulting from the click zone (left,
Right, top, bottom, and diagonal sizing) memory. This memory is stored in the ABMS Hit test portion of the program labeled (501) in Appendix 1 and Append Disk 7, and in the ABMS In test labeled (502, 403) in Appendix 3.
It is done by the it program.

−問題のウィンドウに対する以降のマウスメッセージ
(SETCAPTURE命令による)の割当て。
-Assignment of subsequent mouse messages (via the SETCAPTURE command) to the window in question.

−アペンディクス4において符号(521)で示されてい
るABMSInvertBlockによるウィンドウ周囲でのゴースト
フレームの最初の描画。これは移動のたびに、以前のゴ
ーストフレームを取り消し、次のものを新しい位置に再
描画する。
The first drawing of a ghost frame around the window by the ABMSInvertBlock, indicated by the reference (521) in Appendix 4. This cancels the previous ghost frame with each move and redraws the next one at the new location.

−ウィンドウ管理プログラムによって処理されず、アク
ションを引き起こさない「WM_ENTERIDLE」を置き換え代
入することによるメッセージの中立化。
-Neutralization of messages by substituting "WM_ENTERIDLE" which is not processed by the window manager and causes no action.

ABMSプログラムが開始される時、アペンディクス1の
参照番号(40)によって示される最初のファンクション
は、フィルタファンクションを設置するか又は除去する
かのいずれかを行う。このフィルタファンクションは、
“SETWINDOWSHOOK"ファンクションによって設置され、
かつフィルタの除去は図2の参照番号(40、41)によっ
て示されている“UNHOOKWINDOWSHOOK"ファンクションに
よって行われる。このフィルタファンクションが一旦活
動状態となると、“WM_SYSCOMMAND、WM_LBUTTONUP、WM_
SYSKEYDOWN、WM_NCLBUTTONDOWN、WM_MOUSEMOVE"のごと
き全てのメッセージが転送され、ABMSHookプログラムに
よって処理され、かつこのアプリケーションの“WM_ENT
ERIDLE"メッセージをウィンドウ管理プログラムに送る
ことによってニュートラルにされる。全てのこれらのメ
ッセージは、キーボード又はマウスの割込み後、最初に
ウィンドウ管理プログラムによって送られる。
When the ABMS program is started, the first function, indicated by reference number 40 in Appendix 1, either installs or removes the filter function. This filter function
Installed by "SETWINDOWSHOOK" function,
And the removal of the filter is performed by the "UNHOOKWINDOWSHOOK" function indicated by the reference numbers (40, 41) in FIG. Once this filter function has been activated, it will return “WM_SYSCOMMAND, WM_LBUTTONUP, WM_
All messages such as "SYSKEYDOWN, WM_NCLBUTTONDOWN, WM_MOUSEMOVE" are forwarded, processed by the ABMHook program, and "WM_ENT" of this application.
Neutralized by sending an "ERIDLE" message to the window manager. All these messages are first sent by the window manager after a keyboard or mouse interrupt.

これにより、図4に示されるように、参照番号(50)
の“WM_NCLBUTTONDOWN"メッセージがウィンドウ管理プ
ログラムによって送られる時、このメッセージは、ABMS
Hookプログラムによってインタセプトされる。該プログ
ラムは第1フェーズ(504)でこのメッセージが意図さ
れているウィンドウの識別子を記憶し、変数“h_WndCur
r"内でこのウィンドウがアイコンであるかどうかを見つ
けだすための、行(500)によってアペンディクス1の
プログラム(50)に示されているテストを実行し、次に
アペンディクス7に参照番号(501)によって詳細に示
されているアペンディクス1のABMSHitテストプログラ
ム(501)の部分によって、クリッキングゾーンから生
じるこの種の動作を記憶し、それからアペンディクス4
に参照番号(502、503)によって詳細に示されているア
ペンディクス1のサブプログラムABMSInit(502、503)
を実行する。このプログラムは、“SETCAPTURE"メッセ
ージによって後からのマウスメッセージを当該ウィンド
ウに適合させ、かつウィンドウとカーソル位置の初期座
標とを決定する。シーケンス(50)を処理する“WM_NCL
BUTTONDOWN"は、処理の終わりに“WM_ENTERIDLE"メッセ
ージを返送する。
Thereby, as shown in FIG.
When the "WM_NCLBUTTONDOWN" message is sent by the window manager, this message is sent to the ABMS
Intercepted by the Hook program. In the first phase (504), the program stores the identifier of the window for which this message is intended, and stores the variable "h_WndCur
Perform the test shown in the program (50) in Appendix 1 by line (500) to find out if this window is an icon in "r", and then in Appendix 7 by reference number (501) The part of the ABMSHit test program (501) in Appendix 1, which is shown in detail, stores this type of action resulting from the clicking zone and then appends it to Appendix 4.
Subprogram ABMSInit (502, 503), indicated in detail by reference numbers (502, 503)
Execute The program adapts subsequent mouse messages to the window with a "SETCAPTURE" message, and determines the window and the initial coordinates of the cursor position. "WM_NCL processing sequence (50)
"BUTTONDOWN" returns a "WM_ENTERIDLE" message at the end of the process.

ウィンドウ管理プログラムによって送られる次のメッ
セージは“WM_MOUSENOVE"メッセージによって示されか
つアペンディクス1の命令シーケンス(51)によって処
理されるマウスの移動となることができ、この命令シー
ケンスの終わりで、このプログラムは“WM_ENTERIDLE"
メッセージを送ることによってウィンドウ管理プログラ
ムにハンドオフする。他の命令の可能性はマウスボタン
リリース命令であって、この命令は、その処理シーケン
ス(52)がアペンディクス1に示されているウィンドウ
メッセージ“WM_LBUTTONUP"によって示されている。こ
のシーケンスは、その終わりに“WM_ENTERIDLE"を送る
ためにウィンドウ管理プログラムのコア(1)にハンド
オフするサブプログラムABMSEndを開始する。
The next message sent by the window manager can be a mouse movement indicated by the "WM_MOUSENOVE" message and handled by the instruction sequence (51) in Appendix 1, at the end of which the program will " WM_ENTERIDLE "
Handoff to the window manager by sending a message. Another command possibility is a mouse button release command, which is indicated by the window message "WM_LBUTTONUP" whose processing sequence (52) is shown in Appendix 1. This sequence starts the subprogram ABMSEnd, which hands off to the window manager core (1) to send "WM_ENTERIDLE" at the end.

ウィンドウ管理プログラムによって送られた“WM_MOU
SEMOVE"メッセージの場合は、このプログラムは、アペ
ンディクス1の参照番号(510)によってオプジェクト
がアイコン表示されている(iconic)かどうかを確認す
る。もしそれがアイコン表示されていないならば、命令
(515)はこの方向変数が初期化されていたかどうかを
確認する。初期化されていた場合は、アペンディクス5
のABMSMoveファンクション(511)を開始するが、初期
化されてなかった場合は、アペンディクス6のABMSDire
ctionファンクション(512)は、パラメータとしてアペ
ンディクス8のABMSTestDirectファンクション(513)
の結果によって方向変数の初期化を開始するべく立上げ
られる。オブジェクトがアイコン表示されている場合
は、このシーケンスは、命令番号(5111)によって、カ
ーソルとABMSLoadIconファンクション(5100)とによっ
て示された位置でのアイコンのローディングを開始す
る。このシーケンスは、次いで“WM_ENTERIDLE"メッセ
ージを送りながら、ウィンドウ管理プログラムにハンド
オフする。
"WM_MOU sent by the window manager
In the case of the "SEMOVE" message, the program checks if the object is iconic (iconic) by the reference number (510) in Appendix 1. If it is not, then the command (515) ) Checks if this direction variable has been initialized, if so, appendix 5
Starts the ABMSMove function (511) of, but if it has not been initialized,
The ction function (512) has the ABMSTestDirect function (513) of Appendix 8 as a parameter.
Is started to start the initialization of the direction variable according to the result of. If the object is iconic, the sequence starts loading the icon at the position indicated by the cursor and the ABMSLoadIcon function (5100) by instruction number (5111). This sequence then hands off to the window manager, sending a "WM_ENTERIDLE" message.

ABMSが図4の参照番号(53)によって示される“WM_S
YSKEYDOWN"メッセージをインタセプトする場合は、この
メッセージの処理はサブプログラム(53)をスタートす
る。このサブプログラムは、“VK_RETURN"メッセージ又
はエスケープメッセージ“VK_ESCAPE"が受け取られ、次
いで左移動キー“VK_LEFT"、上方移動キー“VK_UP"、右
移動キー“VK_RIGHT"及び下方移動キー“VK_DOWN"の各
ケースを処理する時に復帰(キャリッジリターン)キー
が活動状態の場合の処理によって始められる。押し下げ
られるキーの種類によって、左方向の移動用(530)、
上方向の移動用(531)、右方向の移動用(532)、及び
下方向の移動用(533)のごときサブプログラムのうち
の一つに対応する処理を実行する。
The ABMS indicates "WM_S" as indicated by reference number (53) in FIG.
When intercepting the "YSKEYDOWN" message, processing of this message starts a subprogram (53), which receives a "VK_RETURN" message or an escape message "VK_ESCAPE" and then the left movement key "VK_LEFT", When processing each case of the up-movement key "VK_UP", the right-movement key "VK_RIGHT" and the down-movement key "VK_DOWN", the process is started by processing when the return (carriage return) key is active. , For leftward movement (530),
A process corresponding to one of the sub-programs, such as for upward movement (531), rightward movement (532), and downward movement (533), is executed.

上述したように、メッセージをフィルタが受け取ると
同時に、これは処理され、対応する処理の後、ABMSプロ
グラムがウィンドウ管理プログラムのコア(1)へハン
ドオフし、コアは他のアプリケーションへハンドオフで
きるとともに、フィルタがABMSプログラムの介入を必要
とする処理を必要とする新しいメッセージをインターセ
プトするのを待つ。フィルタはオペレータが左マウスボ
タンを放すか、「Enter」または「Esc」を押すまで、活
動状態のままである。このアクションは「WM_LBUTTONU
P、WM_SYSKEYDOWN、VK_ENTER、VK_ESCAPE」メッセージ
を生成し、このメッセージはABMSフィルタの状況の能動
状況から受動状況への変化を引き起こす。この変更中に
行われるアクションは次の通りである。即ち、 アペンディクス6のサブプログラム(5210)によって
示されているABMSComputNewPos手続きによる、最終ウィ
ンドウ座標の計算と、 InvertBlockによるゴーストの消去と、 最終位置のウィンドウの描画と、 記憶されたパラメータをゼロにリセットすることと、 “Release Capture"命令によるマウスメッセージの
オーナシップの放棄と、 フィルタの受動モードへの遷移と、 である。
As described above, at the same time that the filter receives the message, this is processed, and after the corresponding processing, the ABMS program hands off to the window management program core (1), which can hand off to other applications, and Wait for a new message that requires processing that requires the intervention of an ABMS program. The filter remains active until the operator releases the left mouse button or presses "Enter" or "Esc". This action is called "WM_LBUTTONU
Generate a P, WM_SYSKEYDOWN, VK_ENTER, VK_ESCAPE "message, which causes the status of the ABMS filter to change from an active status to a passive status. The actions performed during this change are as follows: That is, the final window coordinates are calculated by the ABMSComputNewPos procedure indicated by the subprogram (5210) of Appendix 6, the ghost is deleted by the InvertBlock, the window at the final position is drawn, and the stored parameters are reset to zero. And relinquishing ownership of the mouse message with the “Release Capture” command, and transitioning the filter to passive mode.

上記説明の通り、設置されたフィルタのため、ABMSア
プリケーションは、種々のメッセージ“WM_SYSCOMMAN
D、WM_NCLBUTTONDOWN、WM_MOUSEMOVE、WM_LBUTTONUP、W
M_SYSKEYDOWN、WM_KEYDOWN、WM_ACTIVATEAPP、WM_NCACT
IVATE、WM_ACTIVATE"を受け取る。このアプリケーショ
ンは、ウィンドウ管理プログラムのために、これらのメ
ッセージを“WM_ENTERIDLE"などのニュートラルメッセ
ージに置換し、次いで、処理が開始されたのが検出され
た時にコールされた種々の主たる処理ファンクションを
コールしながら、これらのメッセージを処理し続ける。
これらの主たる処理ファンクションは以下の通りであ
る。即ち、 最初の“SC_MOVE"又は“SC_SIZE"が“WM_SYSCOMMAND"
で受け取られた時、処理を初期化するためのABMSInitフ
ァンクションであり、 このABMSInitファンクションは、“SETCAPTURE"命令
によってマウスメッセージを適合させ、次いでこのウィ
ンドウが、親ウィンドウの子ウィンドウであるかどう
か、即ちこの子ウィンドウの移動を限定するためにこの
親ウィンドウにウィンドウが書き込まれているかどうか
を確認し、次いで初期ウィンドウ座標及びカーソル位置
を初期化して現行座標とし、さらにウィンドウの特性パ
ラメータ(w_CXFrame、w_CXMinWidth、w_CYMinHeight)
を初期化することからなる。更に、ABMSEnd及びABMSMov
eファンクションを含む。
As described above, due to the filters installed, the ABMS application sends various messages "WM_SYSCOMMAN
D, WM_NCLBUTTONDOWN, WM_MOUSEMOVE, WM_LBUTTONUP, W
M_SYSKEYDOWN, WM_KEYDOWN, WM_ACTIVATEAPP, WM_NCACT
IVATE, WM_ACTIVATE ". This application replaces these messages with a neutral message, such as" WM_ENTERIDLE ", for the window manager, and then calls the various calls that are made when it is detected that processing has begun. Continue processing these messages while calling the main processing function of.
These main processing functions are as follows. That is, the first “SC_MOVE” or “SC_SIZE” is “WM_SYSCOMMAND”
An ABMSInit function to initialize the process when received at the, which adapts the mouse message with the "SETCAPTURE" command, and then determines whether this window is a child window of the parent window, ie Checks if a window has been written to this parent window to limit the movement of this child window, then initializes the initial window coordinates and cursor position to the current coordinates, and further sets the window's characteristic parameters (w_CXFrame, w_CXMinWidth, w_CYMinHeight)
Consists of initializing Furthermore, ABMSEnd and ABMSMov
Including e-functions.

これら3つの主ファンクションのほかに、主ファンク
ションの異なるポイントで呼び出されるユティリティフ
ァンクションがあり、ユティリティ処理を実行するのに
役立つ。これらのファンクションは以下の通りである。
In addition to these three main functions, there are utility functions that are called at different points in the main function, and are useful for performing utility processing. These functions are as follows:

−マウス座標がそれに与えられた時、広域(global)及
び残留変数(remanent variables)を考慮にいれなが
ら、ウィンドウ座標を計算しかつ更新するのに役立つAB
MSComputNewPosファンクション。アペンディクス5のAB
MSComputNewPosファンクション(5210)は、新しい位置
がW_Left、W_Caption、W_Top、W_Right、及びW_Bottom
パラメータから計算されること、及びマウス座標及びウ
ィンドウフレームがウィンドウの最低の高さ及び幅の座
標から計算されることを可能にする。このファンクショ
ンはまた、子ウィンドウが親ウィンドウから出ないこと
を確実とするためにこれらの計算の限界をテストする。
AB to help calculate and update window coordinates, taking into account global and remanent variables when mouse coordinates are given to it
MSComputNewPos function. AB of Appendix 5
The MSComputNewPos function (5210) calls the new positions W_Left, W_Caption, W_Top, W_Right, and W_Bottom.
It is calculated from parameters and allows mouse coordinates and window frames to be calculated from the lowest height and width coordinates of the window. This function also tests the limits of these calculations to ensure that child windows do not leave the parent window.

−アペンディクス6のABMSDirectionファンクション(5
12)は、カーソルの形を決定しかつ受け取られたメッセ
ージの関数として方向変数を初期化するために役立つ。
アペンディクス6のABMSDirectionファンクション(51
2)は、例えば、ABMSTestDirectionによって返送された
パラメータがD_Topである場合には、W_Topパラメータを
1に位置決めさせ、命令番号(5120)によってカーソル
位置をウィンドウの上方エッジに引っ掛ける。次いでこ
のシーケンスはW_Leftが初期化されたかどうかを見つけ
るためにW_Leftパラメータをテストする。W_Leftが初期
化されていた場合は、このシーケンスは、カーソルディ
スプレイが上方右方向40゜に傾斜しているかどうかを尋
ねるためにメッセージ“D_TTOBDBLEARROW"を送る。W_Le
ftが初期化されていない場合は、このシーケンスはW_Ri
ghtが初期化されているかどうかを確認する。もしW_Rig
htが初期化されていた場合は、このシーケンスは、カー
ソルが上方左方向に傾斜してディスプレイされることを
要求するためにメッセージ“D_BTOTDBLEARROW"を送る。
W_Rightのテストが否定ならば、メッセージ“D_VERTDBL
EARROW"の実行によって垂直カーソルがディスプレイさ
れる。
-ABMSDirection function in Appendix 6 (5
12) helps determine the shape of the cursor and initializes the direction variable as a function of the message received.
ABMSDirection function in Appendix 6 (51
2), for example, when the parameter returned by ABMSTestDirection is D_Top, the W_Top parameter is positioned at 1, and the cursor position is hooked on the upper edge of the window by the instruction number (5120). The sequence then tests the W_Left parameter to find out if W_Left has been initialized. If W_Left has been initialized, this sequence sends the message "D_TTOBDBLEARROW" to ask if the cursor display is tilted upward 40 °. W_Le
If ft has not been initialized, this sequence is W_Ri
Check if ght has been initialized. If W_Rig
If ht has been initialized, this sequence sends the message "D_BTOTDBLEARROW" to request that the cursor be displayed tilted upward left.
If the test for W_Right is negative, the message "D_VERTDBL
Executing "EARROW" displays a vertical cursor.

−アペンディクス7のABMSHitTestファンクション(50
1)は、初期化時に、どのゾーンがクリックされたかを
決定し、マウス移動の場合の方向変数を初期化するのに
役立つ。このファンクションは、“WM_NCLBUTTONDOWN"
が受け取られた場合にABMSInitによって呼び出され、か
つW_Top、W_Right、W_Bottom、W_Left、及びW_Caption
の変数が初期化されるのを可能にする。
-ABMSHitTest function in Appendix 7 (50
1) during initialization, determines which zone was clicked, and helps to initialize direction variables in case of mouse movement. This function returns “WM_NCLBUTTONDOWN”
Called by ABMSInit when is received, and W_Top, W_Right, W_Bottom, W_Left, and W_Caption
Allows the variables to be initialized.

このため、アペンディクス7に示されているように、
頂部右コーナがマウスによってクリックされたことを示
す、HT_TopRightメッセージが受け取られた時、ABMSHit
TestファンクションはW_Top及びW_Right変数をゼロにセ
ットする。これは、新しいメッセージが受け取られた
時、ウィンドウの上方右コーナに初期化が生じて、これ
によりウィンドウの移動またはウィンドサイズの決定が
処理されなければならないことを示す。
For this reason, as shown in Appendix 7,
ABMSHit when an HT_TopRight message is received, indicating that the top right corner was clicked with the mouse
The Test function sets the W_Top and W_Right variables to zero. This indicates that when a new message is received, initialization occurs in the upper right corner of the window, so that window movement or window size determination must be handled.

アペンディクス7の参照番号(5030)によって示され
たABMSInvertBlockファンクションは、hDCパラメータ
と、例えばP_RecFrm.leftによって示されているウィン
ドウの寸法との関数としてPatBltファンクションによっ
てコマンドされた4つの隣接した長方形を描くことによ
って長方形を描く。DSTINVERTコマンドによって、このP
atBltファンクションはウィンドウゴーストを同時に反
転させる。
The ABMSInvertBlock function, indicated by reference number 5030 in Appendix 7, draws four adjacent rectangles commanded by the PatBlt function as a function of the hDC parameters and the dimensions of the window, indicated, for example, by P_RecFrm.left. Draw a rectangle by The DSTINVERT command allows this P
The atBlt function reverses the window ghost at the same time.

−アペンディクス7のABMSLoadCursorファンクション
(5031)は、ウィンドウのエッジのその位置に従って送
られたパラメータの関数としてカーソルをロードする。
このため、W_LeftとW_Topとのパラメータが1で初期化
された場合は、ウィンドウの上方左エッジが処理されか
つ初期化されたこのカーソルは、ウィンドウの下方右エ
ッジ即ち45゜を指し示す矢印のように見えるであろう。
The ABMSLoadCursor function (5031) in Appendix 7 loads the cursor as a function of the parameters sent according to its position on the edge of the window.
Thus, if the parameters W_Left and W_Top are initialized to 1, the upper left edge of the window has been processed and the cursor initialized, as indicated by the arrow pointing to the lower right edge of the window, ie, 45 °. You will see.

−アペンディクス8のABMSLoadIconファンクション(51
00)は、静的アイコンが移動せしめられた場合は、カー
ソルが、ウィンドウ管理プログラムによって生成された
静的アイコンの画像によって置換されるのを可能にす
る。さらに動的アイコンが移動せしめられた場合は、該
ファンクションは、この動的アイコン画像が、カーソル
によって構成される画像によって置換されるのを可能に
する。
-ABMSLoadIcon function in Appendix 8 (51
00) allows the cursor to be replaced by the static icon image generated by the window manager if the static icon has been moved. If the dynamic icon is moved further, the function allows this dynamic icon image to be replaced by the image constituted by the cursor.

−アペンディクス8の参照番号(513)で示されたABMST
estDirectファンクションは、アプリケーションによっ
て受け取られかつP_MSEPOS.Xによって示されたマウスの
位置のX座標によって構成されたウィンドウ管理プログ
ラムによって送られたその情報をテストすることによっ
て、例えばD_Left(5130)のごときパラメータが返送さ
れるのを決定し、かつこの座標をウィンドウの左位置の
値と比較し、さらにマウスのX座標の値がウィンドウの
左エッジの横座標より小さい場合は、このファンクショ
ンはD_Leftメッセージをアプリケーションにリターンす
る。このファンクションはABMSDirectionファンクショ
ンと連動して用いられる。
-ABMST indicated by reference number (513) in Appendix 8
The estDirect function tests the information received by the application and sent by the window manager consisting of the X coordinate of the mouse position indicated by P_MSEPOS.X, so that parameters such as D_Left (5130) This function returns a D_Left message to the application if it decides to return it and compares this coordinate with the value of the left position of the window, and if the value of the mouse X coordinate is smaller than the abscissa of the left edge of the window To return. This function is used in conjunction with the ABMSDirection function.

−アペンディクス5のABMSMoveファンクション(511)
は、アペンディクス5及び7の参照番号(5030)で示さ
れているABMSInvertBlockファンクションによってウィ
ンドウのゴーストを反転することによりウィンドウが移
動せしめられることを可能にする。該ファンクション
は、次いで、ABMSComputNewPosファンクション(5210)
によってウィンドウの新しい位置を計算し、最終的に参
照番号(5112)によって示されている計算された新しい
位置にウィンドウゴーストを反転させる。
-ABMSMove function in Appendix 5 (511)
Allows the window to be moved by inverting the ghost of the window by means of the ABMSInvertBlock function, indicated by the reference number (5030) in Appendices 5 and 7. The function is then the ABMSComputNewPos function (5210)
To calculate the new position of the window, and finally flip the window ghost to the calculated new position indicated by reference number (5112).

−アペンディクス4のABMSEndファンクション(521)
は、ウィンドウがアイコンされているかどうかを見るた
めに命令(5211)を用いることによって処理を終了させ
る。これがアイコンされていない場合は、終了は正常終
了(5212)である。従って、ABMSComputNewPosファンク
ション(5210)が開始される。さもなければカーソル
は、命令(5213)によってその初期開始位置で再開す
る。このファンクションは、またシーケンス(5214)に
よって、処理中のウィンドウが子ウィンドウであるかど
うかを決定するのを可能にし、さらにこの場合、移動前
に座標を反転する。このようにこのファンクションは、
必要ならば、カーソルを回復するためにシーケンス(52
15)を用いかつシーケンス(5216)によってパラメータ
をゼロにリセットする。
-ABMSEnd function in Appendix 4 (521)
Terminates the process by using the instruction (5211) to see if the window is iconified. If this is not the case, the end is a normal end (5212). Accordingly, the ABMSComputNewPos function (5210) is started. Otherwise, the cursor is restarted at its initial start position by the instruction (5213). This function also allows the sequence (5214) to determine whether the window being processed is a child window, and in this case invert the coordinates before moving. Thus this function is
If necessary, use the sequence (52
Reset the parameter to zero using 15) and by sequence (5216).

CalMsgHookフィルタによるアプリケーションは、“WM
_SYSCOMMAND、WM_ACTIVATEAPP、WM_NCACTIVATE、WM_ACT
IVATE"メッセージを含んでいるアプリケーション方法に
直接送られていたであろうメッセージがフィルタされか
つ受け取られるのを可能にする。(54)で示された“WM
_SYSCOMMAND"メッセージの処理は、“SC_MOVE"か又は
“SC_SIZE"メッセージのいずれかの処理に分類され得
る。この“SC_SIZE"メッセージは、W_Captionパラメー
タを1に位置決めし、またウィンドウサイズの決定のメ
ッセージである“SC_SIZE"は(540)によって示された
処理をトリガする。このアプリケーションがウィンドウ
サイズの決定のメッセージを受け取る時は、このアプリ
ケーションは、参照番号(5401)にマウスのカーソル位
置を要求し、さらにそれがマウスのカーソル位置となる
ことを要求する。次いで参照番号(5402)で、この手続
きはABMSInitファンクションを開始する。またカーソル
位置の参照番号(5403)は実行された動作に対応付けら
れており、かつ処理終了時に、このアプリケーションは
ウィンドウ管理プログラムに参照番号(541)のメッセ
ージ“WM_ENTERIDLE"を返送し、このメッセージは“WM_
SYSCOMMAND"メッセージと置換する。
The application using the CalMsgHook filter is “WM
_SYSCOMMAND, WM_ACTIVATEAPP, WM_NCACTIVATE, WM_ACT
Enables messages that would have been sent directly to the application method containing the "IVATE" message to be filtered and received. "WM" shown at (54)
The processing of the "_SYSCOMMAND" message can be categorized as the processing of either the "SC_MOVE" or the "SC_SIZE" message, which positions the W_Caption parameter to 1 and is a message for determining the window size. “SC_SIZE” triggers the process indicated by (540). When the application receives a window size determination message, it requests the reference number (5401) for the mouse cursor position and further Requires the mouse cursor position. Then, at reference number (5402), the procedure starts the ABMSInit function, and the cursor position reference number (5403) is associated with the action performed. At the end of the process, the application sends the message number 541 to the window manager. Returns “WM_ENTERIDLE” and this message is “WM_ENTERIDLE”.
Replace with "SYSCOMMAND" message.

このように、GetMsgHookフィルタは、“WM_NCLBUTTON
DOWN、WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_S
YSKEYDOWN"のメッセージをフィルタする。この種の“WM
_NCLBUTTONDOWN"メッセージが、命令番号(504)を用い
てABMSアプリケーションに到達する時は、このアプリケ
ーションがメニュー実行であるかどうかが確認される。
メニュー実行でない場合は、アイコンのために作動して
いるかどうかが参照番号(500)で見られる。アイコン
のために作動していない場合は、パラメータがABMSHitT
estファンクション(501)によって初期化されたかどう
かが確認される。パラメータが初期化されてなかった場
合は、メッセージパラメータを具備しているX及びY座
標のポイントに格納することによってABMSInitファンク
ション(502、503)を開始する。次いで“WM_ENTERIDL
E"メッセージ(505)は、ウィンドウ管理プログラムに
ハンドオフするためウィンドウ管理プログラムに送られ
る。ウィンドウ管理プログラムによって送られた“WM_M
OUSEMOVE"メッセージの場合は、プログラムは、アペン
ディクス1の参照番号(510)でオブジェクトがアイコ
ンされているかどうかを確認する。オブジェクトがアイ
コンされていない場合は、命令(515)は方向変数が初
期化されていたかどうかを確認するが、初期化の場合
は、プログラムはアペンディクス5のABMSMove(511)
ファンクションを開始する。方向変数が初期化されてい
なかった場合は、アペンディクス6のABMSDirectionフ
ァンクション(512)は、パラメータとしてアペンディ
クス8のABMSTestDirectファンクション(513)の結果
生じる方向変数の初期化が開始される。オブジェクトが
アイコンされている場合は、このシーケンスは、カーソ
ルで示されている位置でのアイコンのローディングを開
始するための命令(5111)及びファンクションABMSLoad
Icon(5100)を用いる。次いでシーケンスは、メッセー
ジ“WM_ENTERIDLE"を送ることによってウィンドウ管理
プログラムにハンドオフする。
Thus, the GetMsgHook filter uses “WM_NCLBUTTON
DOWN, WM_MOUSEMOVE, WM_LBUTTONUP, WM_KEYDOWN, WM_S
YSKEYDOWN "message. This kind of" WM
When the "_NCLBUTTONDOWN" message reaches the ABMS application using the instruction number (504), it is checked whether this application is a menu run.
If it is not a menu run, whether it is working for the icon is found at reference number (500). If not working for the icon, the parameter is AMBSitT
It is confirmed whether or not initialization has been performed by the est function (501). If the parameters have not been initialized, start the ABMSInit function (502, 503) by storing it at the X and Y coordinate point comprising the message parameters. Then "WM_ENTERIDL
The E "message (505) is sent to the window manager for handing off to the window manager." WM_M "sent by the window manager
In the case of the "OUSEMOVE" message, the program checks whether the object is iconified at reference number (510) in Appendix 1. If the object is not iconified, the instruction (515) initializes the direction variable. Check if the program has been initialized, but in the case of initialization, the program will execute AMBSMove (511) in Appendix 5.
Start the function. If the direction variable has not been initialized, the ABMSDirection function (512) in Appendix 6 starts to initialize the direction variable resulting from the ABMSTestDirect function (513) in Appendix 8 as a parameter. If the object is iconified, the sequence consists of an instruction (5111) to start loading the icon at the position indicated by the cursor and the function ABMSLoad.
Use Icon (5100). The sequence then hands off to the window manager by sending the message "WM_ENTERIDLE".

メッセージ“WM_LBUTTONUP"がアプリケーションから
受け取られた場合は、参照番号(510)でオペレータが
メニュー実行したかどうかが見られる。実行でなけれ
ば、このアプリケーションは、ウィンド座標がマウス座
標に対応するかどうかを確認し、ABMSEndファンクショ
ン(521)を開始し、次いでウィンドウ管理プログラム
に“WM_ENTERIDLE"メッセージを送る。
If the message "WM_LBUTTONUP" is received from the application, it is seen at reference number (510) whether the operator has executed the menu. If not, the application checks whether the window coordinates correspond to the mouse coordinates, starts the ABMSEnd function (521), and then sends a "WM_ENTERIDLE" message to the window manager.

キーが押し下げられた後に送られたメッセージの場
合、エスケープ(VK_ESCAPE)及び復帰(VK_RETURN)キ
ーによって構成されているアボート(放棄)キーの場合
を取り扱うために参照番号(534)でアプリケーション
が開始される。これと場合を異にして、アプリケーショ
ンがVK_Leftメッセージを受け取った場合、アプリケー
ションは最初にアイコンモードであるかどうかを参照番
号530のシーケンスで確認して、ファンクションABMSLoa
dIcon(5100)によってアイコンをロードし、次いで命
令(5301)によってパラメータW_Caption、W_Left、及
びW_Rightが初期化されていたかどうかを確認する。さ
らにそれらが初期化されていた場合は、アプリケーショ
ンはアイコンを移動させるか、又はシーケンス(5302)
によって実際サイズを提供する。アイコンモードがこの
ポイントで丁度良く動作していない場合は、ABMSMoveフ
ァンクションが開始され、またマウスの位置はカーソル
の位置に提供される。さもなければ、ABMSはABMSDirect
ionファンクションを開始し、次いでメッセージ“WM_EN
TERIDLE"をウィンドウ管理プログラムに返送する。
For messages sent after a key is depressed, the application is started at reference number (534) to handle the case of an abort key composed of escape (VK_ESCAPE) and return (VK_RETURN) keys. . Otherwise, if the application receives a VK_Left message, the application first checks whether it is in icon mode in the sequence of reference number 530 and returns the function ABMSLoa
Load the icon with dIcon (5100) and then check if the parameters W_Caption, W_Left, and W_Right have been initialized by instruction (5301). In addition, if they have been initialized, the application moves the icon or sequence (5302)
Depending on the actual size provided. If the icon mode is not working just at this point, the ABMSMove function is started and the mouse position is provided at the cursor position. Otherwise, ABMS is ABMSDirect
Start the ion function and then the message "WM_EN
TERIDLE "to the window manager.

生じ得る種々の事象を取り扱いかつ主処理ファンクシ
ョン上又はユティリティファンクション上で呼び出すこ
のプログラムの他の部分の動作は、上記説明及び表のリ
ストによって推測される。
The operation of the other parts of this program that handle the various events that may occur and invoke on the main processing function or on the utility function is inferred by the above description and the list of tables.

図4のフローチャートの種々の段階を詳細に示したア
ペンディクス1〜アペンディクス8を以下に示す。
Appendices 1 through 8 detailing the various stages of the flowchart of FIG. 4 are shown below.

また、アペンディクス1の前に、アペンディクス中の
ファンクションブロックの一覧表と変数の役割の一覧表
とを示す。
Before the appendix 1, a list of function blocks in the appendix and a list of roles of variables are shown.

個々の当業者の範囲内でのいかなる変形も本発明の精
神及びその範囲から逸脱することなく行われるであろ
う。
Any modification within the skill of the artisan will be made without departing from the spirit and scope of the invention.

図面の簡単な説明 図1は、本発明の全体的な経路図を示している。BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 shows an overall path diagram of the present invention.

図2は、本発明のフィルタの動作原理を示している。 FIG. 2 shows the principle of operation of the filter of the present invention.

図3は実行可能なシナリオ表を示している。 FIG. 3 shows an executable scenario table.

図4は、フィルタリングファンクションが一度ロード
された時の翻訳プログラムのフローチャートである。
FIG. 4 is a flowchart of the translation program when the filtering function is loaded once.

図5は、本発明の従来の技術を示している。 FIG. 5 shows a conventional technique of the present invention.

Claims (12)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】ウィンドウオペレーティングシステムにお
いて複数のアプリケーションウィンドウの一つのサイズ
決定又は移動を行う方法であって、 該ウィンドウオペレーティングシステムと該アプリケー
ションウィンドウとの間に少なくとも1とつのフィルタ
を設けるステップと、 該ウィンドウオペレーティングシステムと該アプリケー
ションウィンドウとの間を通過する少なくとも一つのメ
ッセージをインタセプトするステップと、 該少なくとも一つのインタセプトされたメッセージを固
有のアプリケーションによって処理するステップと、そ
して、 該ウィンドウオペレーティングシステムへニュートラル
メッセージを戻し、その際に該ニュートラルメッセージ
は該ウィンドウオペレーティングシステムが更に別の動
作を行うことを要求せず、該ウィンドウオペレーティン
グシステムが他のアプリケーションウィンドウにおける
タスクの処理を行うことを許容するステップと、 を具備する方法。
1. A method for sizing or moving one of a plurality of application windows in a window operating system, comprising: providing at least one filter between the window operating system and the application window; Intercepting at least one message passing between a window operating system and the application window; processing the at least one intercepted message by a unique application; and neutralizing a message to the window operating system. And the neutral message then requests that the window operating system take further action. Without allowing the window operating system to perform tasks in other application windows.
【請求項2】該少なくとも一つのインタセプトしたメッ
セージを処理するステップは、更に、 ウィンドウの移動又はウィンドウのサイズ決定の事象に
対応する複数のマウス及びキーボード事象の各々を処理
するステップと、そして、 複数のアプリケーションウィンドウのパラメータを初期
化するステップと、 を具備する請求項1に記載の方法。
2. The method of claim 1, wherein processing the at least one intercepted message further comprises: processing each of a plurality of mouse and keyboard events corresponding to window movement or window sizing events; 2. The method of claim 1, further comprising: initializing parameters of the application window.
【請求項3】該複数のアプリケーションウィンドウのパ
ラメータは、 アプリケーションウィンドウで動作が開始されたかどう
かを示す変数と、 アイコンがロードされたかどうかを示す変数と、 該アイコンがメニュー実行フェーズであるか又はアイコ
ン移動フェーズであるかどうかを示す変数と、 能動カーソルの識別子を示す変数と、 サイズ決定およびフレーミングの際の前記アプリケーシ
ョンウィンドウの座標を示す複数の変数と、 現行のアプリケーションウィンドウの位置を示す変数
と、 現行のマウス位置を示す変数と、 該変数のマウス及びキーボード事象に関連する方向情報
を記録する複数の変数と、 該アプリケーションウィンドウの初期位置を記録する変
数と、 カーソルの初期位置を記録する変数と、 を含む請求項2に記載の方法。
3. The plurality of application window parameters include: a variable indicating whether an operation has been started in the application window; a variable indicating whether an icon has been loaded; A variable indicating whether it is a movement phase, a variable indicating an identifier of an active cursor, a plurality of variables indicating coordinates of the application window at the time of sizing and framing, and a variable indicating a current position of the application window; A variable indicating the current mouse position; a plurality of variables recording direction information relating to the mouse and keyboard events of the variable; a variable recording the initial position of the application window; and a variable recording the initial position of the cursor. The method according to claim 2, comprising: Law.
【請求項4】固有のアプリケーションが、マウスまたは
キーボードから複数のハードウェア割り込みを受け取る
ためのフィルタと、前記アプリケーションウィンドウへ
直接送られるメッセージをインターセプトし受け取るた
めの他のフィルタとの二つのフィルタを含む請求項1に
記載の方法。
4. The unique application includes two filters, one for receiving multiple hardware interrupts from a mouse or keyboard, and another for intercepting and receiving messages sent directly to the application window. The method of claim 1.
【請求項5】該少なくとも1つのメッセージをインタセ
プトする該ステップは、更に、メッセージ固有のアプリ
ケーションの処理をトリガするステップと、 該アプリケーションウィンドウのパラメータにアクセス
するステップと、そして、 処理初期化を行い、該アプリケーションウィンドウ移動
を行い、そして処理終了を行うべく複数の関数を使用す
るステップと、 を具備する請求項4に記載の方法。
5. The step of intercepting the at least one message further comprises: triggering processing of a message-specific application; accessing parameters of the application window; and performing processing initialization; 5. The method of claim 4, comprising: performing the application window movement and using a plurality of functions to complete processing.
【請求項6】該処理初期化関数は、押下されているマウ
スボタンに関連するマウス事象及びアプリケーションウ
ィンドウのサイズ決定を要求しているキーボード事象の
みを処理する請求項5に記載の方法。
6. The method of claim 5, wherein the processing initialization function processes only mouse events associated with a mouse button being depressed and keyboard events requesting sizing of an application window.
【請求項7】該処理終了関数は、離されているマウスボ
タンに関連するマウス事象及び“Escape"キー入力及び
“Return"キー入力に関連するキーボード事象のみを処
理する請求項5に記載の方法。
7. The method of claim 5, wherein the processing termination function processes only mouse events associated with the mouse button being released and keyboard events associated with "Escape" and "Return" key inputs. .
【請求項8】該ウィンドウ移動関数は、マウス移動に関
連するマウス事象及び方向性キー入力に関連するキーボ
ード事象のみを処理する請求項5に記載の方法。
8. The method of claim 5, wherein the window movement function processes only mouse events related to mouse movement and keyboard events related to directional key input.
【請求項9】該処理初期化関数は、更に、 マウス事象を適合させるステップと、 ウィンドウの移動を限定するために、ウィンドウが子ウ
ィンドウとして親ウィンドウの内部に書込まれているか
どうかを決定するステップと、そして、 現行座標とするべく、ウィンドウの初期座標及びカーソ
ルの位置を初期化し、そしてウィンドウの特性パラメー
タを初期化するステップと、 を具備する請求項6に記載の方法。
9. The processing initialization function further comprises the steps of: adapting mouse events; and determining whether the window is written as a child window inside the parent window to limit window movement. 7. The method of claim 6, comprising the steps of: initializing the initial coordinates of the window and the position of the cursor to be the current coordinates, and initializing the characteristic parameters of the window.
【請求項10】ウィンドウオペレーティングシステムに
おいて複数のアプリケーションウィンドウの一つのサイ
ズ決定又は移動を行う方法であって、 該ウィンドウオペレーティングシステムと該アプリケー
ションウィンドウとの間に少なくとも1つのフィルタを
設けるステップと、 該ウィンドウオペレーティングシステムと該アプリケー
ションウィンドウとの間を通過する少なくとも1つのメ
ッセージをインタセプトするステップと、 該少なくとも1つのインタセプトされたメッセージを処
理するステップと、 を具備し、その際に該メッセージを処理するステップ
は、 該少なくとも1つのフィルタを作動させるステップと、 該少なくとも1つのインタセプトされたメッセージが送
られる該アプリケーションウィンドウのパラメータを記
憶するステップと、 該少なくとも1つのインタセプトされたメッセージによ
って要求される動作の形式を記憶するステップと、 該固有のアプリケーションによる処理に対して後のマウ
ス事象を専ら適合させるステップと、 移動するごとに、該アプリケーションウィンドウの周囲
にゴーストフレームを描くステップと、そして、 該ウィンドウオペレーティングシステムに対してニュー
トラルメッセージを戻すステップと、 を具備し、その際に該ニュートラルメッセージは何等の
動作を必要とせず、該ウィンドウオペレーティングシス
テムが他のアプリケーションウィンドウでのタスクの処
理に進むのを許容する方法。
10. A method for sizing or moving one of a plurality of application windows in a window operating system, comprising: providing at least one filter between the window operating system and the application window; Intercepting at least one message passing between an operating system and the application window; and processing the at least one intercepted message, wherein the processing of the message comprises: Activating the at least one filter; storing parameters of the application window to which the at least one intercepted message is sent. Storing the type of action required by the at least one intercepted message; exclusively adapting subsequent mouse events for processing by the native application; Drawing a ghost frame around the application window and returning a neutral message to the window operating system, wherein the neutral message does not require any action, A method that allows the operating system to proceed with processing tasks in other application windows.
【請求項11】更に、以下の、 該アプリケーションウィンドウの最終の位置を計算する
ステップと、 ゴーストフレームを消去するステップと、 該最終の位置にウィンドウを描くステップと、そして、 該記憶パラメータを零にリセットするステップと、 を具備する請求項10に記載の方法。
11. The method of claim 11, further comprising: calculating a final position of the application window; erasing a ghost frame; drawing a window at the final position; and setting the storage parameter to zero. 11. The method of claim 10, comprising: resetting.
【請求項12】更に、以下の、 該マウスメッセージが他のファンクションによって読み
取られることを許容するステップと、そして、 該フィルタを消勢するステップと、 を具備する請求項11に記載の方法。
12. The method of claim 11, further comprising: allowing the mouse message to be read by another function; and deactivating the filter.
JP3513930A 1990-08-02 1991-07-24 How to determine window size or move window Expired - Lifetime JP2925734B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9009884A FR2665552B1 (en) 1990-08-02 1990-08-02 PROCESS FOR FITTING OR MOVING WINDOWS.
FR90/09884 1990-08-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP10161212A Division JPH1195889A (en) 1990-08-02 1998-06-09 Method for deciding window size and moving window

Publications (2)

Publication Number Publication Date
JPH04505681A JPH04505681A (en) 1992-10-01
JP2925734B2 true JP2925734B2 (en) 1999-07-28

Family

ID=9399353

Family Applications (2)

Application Number Title Priority Date Filing Date
JP3513930A Expired - Lifetime JP2925734B2 (en) 1990-08-02 1991-07-24 How to determine window size or move window
JP10161212A Pending JPH1195889A (en) 1990-08-02 1998-06-09 Method for deciding window size and moving window

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP10161212A Pending JPH1195889A (en) 1990-08-02 1998-06-09 Method for deciding window size and moving window

Country Status (5)

Country Link
EP (1) EP0470881A1 (en)
JP (2) JP2925734B2 (en)
CA (1) CA2066180C (en)
FR (1) FR2665552B1 (en)
WO (1) WO1992002921A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3592549B2 (en) * 1998-09-24 2004-11-24 株式会社東芝 Information processing system and simulation system

Also Published As

Publication number Publication date
FR2665552B1 (en) 1992-10-16
JPH04505681A (en) 1992-10-01
FR2665552A1 (en) 1992-02-07
EP0470881A1 (en) 1992-02-12
JPH1195889A (en) 1999-04-09
CA2066180A1 (en) 1992-02-03
CA2066180C (en) 1998-11-03
WO1992002921A1 (en) 1992-02-20

Similar Documents

Publication Publication Date Title
US5455904A (en) Method of sizing or moving windows
US5742285A (en) Virtual screen display system
US10732997B2 (en) Gesture recognizers with delegates for controlling and modifying gesture recognition
JP5475792B2 (en) Multi-touch object inertia simulation
CN109857303B (en) Interaction control method and device
KR100300176B1 (en) Graphical user interface system of multi-user / multi pointing device
US4859995A (en) Mouse pointer with switchable emulation mode
US9886190B2 (en) Gesture discernment and processing system
JPH0664536B2 (en) Control method of virtual terminal subsystem
US5812804A (en) Display apparatus for tossing windows
EP3374869A1 (en) Hierarchical positioned event dispatch
US20140372903A1 (en) Independent Hit Testing for Touchpad Manipulations and Double-Tap Zooming
JP2925734B2 (en) How to determine window size or move window
JP2000200179A (en) Method for displaying applet and application using bufferless slave graphics context inside incorporation system
JPH10198504A (en) Method for activating function of information processor and system for reading coordinate
CN111124215A (en) Method and system for controlling application of spliced wall right-click menu
JP3480017B2 (en) Pointing device controller
JPH0713683A (en) Multiwindow display device
CN115756156A (en) Gesture event recognition method, storage medium, electronic device and intelligent cockpit
JP2000284988A (en) Object-oriented system analyzing device and method, and recording medium storing software for object-oriented system analysis
CN113703658A (en) Region determination method, device, equipment and storage medium
AU698726C (en) Multiuser/multi pointing device graphical user interface system
JPH09305366A (en) Screen display optimization method
JPH06175810A (en) Information processor provided with display area for each job
JPH03242721A (en) Mouse font display system