ボタンの無効化

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
shoji
記事: 4
登録日時: 2005年9月15日(木) 01:24
お住まい: 東京

ボタンの無効化

#1 投稿記事 by shoji »

いつもお世話になります。
例えば、Button1を1回クリックしたら、Button2をクリックするまで
Button1を何度クリックしても、反応しないようにしたいのですができるものでしょうか?
よろしくお願いします。
淡幻星
記事: 183
登録日時: 2005年7月19日(火) 07:02
お住まい: 宮城県
連絡する:

Re: ボタンの無効化

#2 投稿記事 by 淡幻星 »

例えば、Button1を1回クリックしたら、Button2をクリックするまで
Button1を何度クリックしても、反応しないようにしたいのですができるものでしょうか?
EnableWindow() で出来ます。
使い方はヘルプファイルを見てください。

・・・はさすがに端的過ぎますね(苦笑)。以下修正→追記です。
Button1のIDをCommandButton1とすると

コード: 全て選択

'ボタンを無効にする(何度クリックしても反応しないようにする)
EnableWindow( GetDlgItem(hMainWnd, CommandButton1), FALSE )

'ボタンを有効にする(クリックできるようにする)
EnableWindow( GetDlgItem(hMainWnd, CommandButton1), TRUE )
といった感じになります。
shoji
記事: 4
登録日時: 2005年9月15日(木) 01:24
お住まい: 東京

遅くなりました。ごめんなさい!

#3 投稿記事 by shoji »

できました!
見事に押しても押しても反応しませんね。
ただ、ボタンの字が薄くなるのはモロ無効化
している感じですよね。
というのは、このボタンとは実は小数点の「.」なのです。
CLEARするまで、誤ってクリックしても反応しないように
という事だったんです。
僕のほうが説明不足でした。

ほかの方法があればご教授願いたいです。
淡幻星
記事: 183
登録日時: 2005年7月19日(火) 07:02
お住まい: 宮城県
連絡する:

Re: 遅くなりました。ごめんなさい!

#4 投稿記事 by 淡幻星 »

shojiさん さんが書きました:このボタンとは実は小数点の「.」なのです。
CLEARするまで、誤ってクリックしても反応しないように
という事だったんです。
ということは、電卓でも作っているのでしょうか?
いわゆる無効化でなく単純に無反応にするだけなら、
Dim fPeriod As Long
などのフラグ変数をグローバルに用意して、
その小数点のボタンが押されたときのイベントコーディングの場所に

コード: 全て選択

If( fPeriod = TREU )Then
    'ボタンが押されたときの動作を記述。
    '当然ながら fPeriod = FALSE としておけば、
    'ここの動作はスルーされます。
EndIf
のように記述すれば良いと思いますが・・・望んでいる動作は
こういうことで良いのでしょうか?

※「フラグ変数」というのは、単にON/OFFを管理する変数という意味で
 そう呼んでいるだけ、それようの特別の変数があるわけではありません^^;。
 見れば分かるように唯のLong型です。 
返信する