ページ 1 / 1
ボタンの無効化
Posted: 2005年12月20日(火) 03:29
by shoji
いつもお世話になります。
例えば、Button1を1回クリックしたら、Button2をクリックするまで
Button1を何度クリックしても、反応しないようにしたいのですができるものでしょうか?
よろしくお願いします。
Re: ボタンの無効化
Posted: 2005年12月20日(火) 03:43
by 淡幻星
例えば、Button1を1回クリックしたら、Button2をクリックするまで
Button1を何度クリックしても、反応しないようにしたいのですができるものでしょうか?
EnableWindow() で出来ます。
使い方はヘルプファイルを見てください。
・・・はさすがに端的過ぎますね(苦笑)。以下修正→追記です。
Button1のIDをCommandButton1とすると
コード: 全て選択
'ボタンを無効にする(何度クリックしても反応しないようにする)
EnableWindow( GetDlgItem(hMainWnd, CommandButton1), FALSE )
'ボタンを有効にする(クリックできるようにする)
EnableWindow( GetDlgItem(hMainWnd, CommandButton1), TRUE )
といった感じになります。
遅くなりました。ごめんなさい!
Posted: 2005年12月22日(木) 19:30
by shoji
できました!
見事に押しても押しても反応しませんね。
ただ、ボタンの字が薄くなるのはモロ無効化
している感じですよね。
というのは、このボタンとは実は小数点の「.」なのです。
CLEARするまで、誤ってクリックしても反応しないように
という事だったんです。
僕のほうが説明不足でした。
ほかの方法があればご教授願いたいです。
Re: 遅くなりました。ごめんなさい!
Posted: 2005年12月22日(木) 20:54
by 淡幻星
shojiさん さんが書きました:このボタンとは実は小数点の「.」なのです。
CLEARするまで、誤ってクリックしても反応しないように
という事だったんです。
ということは、電卓でも作っているのでしょうか?
いわゆる無効化でなく単純に無反応にするだけなら、
Dim fPeriod As Long
などのフラグ変数をグローバルに用意して、
その小数点のボタンが押されたときのイベントコーディングの場所に
コード: 全て選択
If( fPeriod = TREU )Then
'ボタンが押されたときの動作を記述。
'当然ながら fPeriod = FALSE としておけば、
'ここの動作はスルーされます。
EndIf
のように記述すれば良いと思いますが・・・望んでいる動作は
こういうことで良いのでしょうか?
※「フラグ変数」というのは、単にON/OFFを管理する変数という意味で
そう呼んでいるだけ、それようの特別の変数があるわけではありません^^;。
見れば分かるように唯のLong型です。