PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
14372 01/01/25 22:54:50 RE(8):PB6.5: キー入力の無効の仕方を教えてください。 By ryochan
14371 01/01/25 19:02:58 RE(7):PB6.5: キー入力の無効の仕方を教えてください。 By Taka
14369 01/01/25 15:52:07 RE(6):PB6.5: キー入力の無効の仕方を教えてください。 By ryochan
14367 01/01/25 02:51:39 RE(5):PB6.5: キー入力の無効の仕方を教えてください。 By Taka
14366 01/01/24 19:28:36 RE(4):PB6.5: キー入力の無効の仕方を教えてください。 By M.M
14351 01/01/22 19:41:29 RE(3):PB6.5: キー入力の無効の仕方を教えてください。 By ryochan
14346 01/01/22 15:23:32 RE(2):PB6.5: キー入力の無効の仕方を教えてください。 By M.M
14334 01/01/20 23:09:16 RE(1):PB6.5: キー入力の無効の仕方を教えてください。 By M.M
14329 01/01/19 16:41:19 PB6.5: キー入力の無効の仕方を教えてください。 By しん

カテゴリ:スクリプトの記述
日付:2001年01月22日 19:41 発信者:ryochan
題名:RE(3):PB6.5: キー入力の無効の仕方を教えてください。

しんさん、M.Mさん、こんばんは。
PeekMessage APIで入力をキャンセルさせる
方法が一応あります。
一応というのは閉じる(キー:Alt+F4)等の
システムメニューには対応できない
からです。
(Winの仕様からして無理です。見たことないです。
私のスキル不足だけかもしれないですが。)

一度お試し下さい。

宣言
function boolean PeekMessageA(&
ref msg LPMSG,ulong hWnd,ulong wMsgFilterMin,ulong wMsgFilterMax,ulong wRemoveMsg&
) library \"user32.dll\"

msg構造体
 ulong   hwnd     
 ulong   message 
 ulong wParam
 ulong lParam 
 ulong  time 
 ulong  pt

ptについては、本当はPOINT構造体へのポインタです。
使わないので手抜きです。

このAPIをストアドプロシージャや時間のかかる処理の
あとに置く。

例:
constant ulong WM_KEYFIRST = 256 //0x0100
constant ulong WM_KEYLAST = 264  //0x0108
constant ulong WM_MOUSEFIRST = 512   //0x0200
constant ulong WM_MOUSELAST = 522 //0x020A
constant ulong PM_REMOVE = 1 //0x001
msg s_msg
long n
for n = 1 to 5000
 sle_cnt.text = string(n)
next

//キーのみキャンセル
//do while PeekMessageA(s_msg,HANDLE(parent),WM_KEYFIRST,WM_KEYLAST,PM_REMOVE)
//loop

//マウスのみキャンセル
//do while PeekMessageA(s_msg,HANDLE(parent),WM_MOUSEFIRST,WM_MOUSELAST,PM_REMOVE)
//loop

//マウスもキーも
do while PeekMessageA(s_msg,HANDLE(parent),WM_KEYFIRST,WM_MOUSELAST,PM_REMOVE)
loop


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser InternetExplorer4.X

Server SoftWare

OS Windows NT 4.0
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.