ダイアログのチェックボックスの状態を取得するには、、、

このQ&Aのポイント
  • VB6.0で開発環境を使用して、IEで表示されるID,パスワード入力ダイアログのチェックボックスの状態を取得する方法について教えてください。
  • ID,パスワード入力ダイアログには、Win2000だと「このパスワードを保存する」、WinXPだと「パスワードを記憶する」というチェックボックスが表示されます。
  • チェックボックスのチェックをはずす操作を加えたいが、状態を取得する方法がわかりません。また、チェックボックスの座標を指定し、色を取得する方法も教えてください。
回答を見る
  • ベストアンサー

ダイアログのチェックボックスの状態を取得するには、、、

開発環境:VB6.0 IEで表示されるID,パスワード入力ダイアログに、自動でID,パスワードを入力し、OKボタンを押すというアプリを作成しています。 (ID,パスワードの入力、OKボタンを押すというところまではできています。) このダイアログには、Win2000だと「このパスワードを保存する」、WinXPだと「パスワードを記憶する」というチェックボックスが表示されます。 OKボタンを押す前に、このチェックボックスのチェックをはずす操作を加えたいと考えています。 したがって、チェックされているときは、チェック欄をWM_LBUTTONDOWN、WM_LBUTTONUPを使用して、クリックさせ、はじめからチェックがされていない場合は、そのままOKボタンを押すという動作にしたいのですが、このチェックボックスのオン/オフ状態を取得する方法がわかりません。ハンドルの取得まではできるのですが、どなたか、状態を取得する方法をご存知の方いらっしゃいましたら、ご教授いただけませんでしょうか。 また、チェックボックスの状態を取得できない場合、チェックボックスの座標を指定し、色を取得して、「黒だったらオンの状態」「白であればオフの状態」と判断するのも手かと思うのですが、FindWindowで取得したダイアログのハンドルとGetPixelとを使用して該当個所の色を取得する方法がわかりません。 GetPixel(GetDC(ダイアログのハンドル), x座標, y座標)としているのですが、チェックボックスを指定するためのx,yの値の確認方法がわかりません。そもそもこの記述であっているのかどうか・・・)この点についてもアドバイスいただけたらと思います。 うまく質問が書けなくてすみませんが、どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

BM_GETCHECK BM_SETCHECK

bodyspecial20
質問者

お礼

上記2つのメッセージを使用して解決しました! ありがとうございました。

関連するQ&A

  • ダイアログ表示時にチェックボックスにチェックされている状態にするには?

    ダイアログ内にチェックボックスを作成して、 そのダイアログを呼出した時に、 チェックボックスがチェックされている状態にするには、 どのようにしたら良いのでしょうか? (リソースで出来る事と出来ない事の区別がまだついてません)

  • ダイアログボックス

    パスワードが必要な場面で、ダイアログボックスにこのパスワードを保存しますか?と出てきたのですが、保存させたいのに保存させないままダイアログボックスを閉じてしまいました。さらに、今後このボックスを表示しないにチェックを入れており、ダイアログボックスが出ない状況です。再度表示させたい場合はどのようにすればよいのでしょうか?パスワードを保存させたいです。どなたか知恵をお借りできないでしょうか?宜しくお願いいたします。

  • ダイアログボックスについて。

    ダイアログボックスについての質問です。 開発環境はVisual C++ 2005.netでありSDKを利用しています。 ダイアログボックスにPicture Controlを貼り付け、Combo Boxの内容が変わるたびにそのPicture Controlに画像を表示するようなプログラムを作りたいと考えています。 自分が考える手順としてはまずPicture Controlについてサブクラス化を行い、親のダイアログボックスが表示されると同時にPicture ControlのプロシージャでWM_CREATEメッセージを受け取り描画を行う。 そして親のダイアログボックスに貼り付けたCombo Boxの内容が変更された場合に、Picture ControlのウィンドウハンドルにむけてWM_PAINTメッセージを送信する。 こんな手順で行いたいのですが、少し不安な部分が出てきました。 Combo Boxの内容が変更され、Picture Controlのウィンドウハンドルに向けてWM_PAINTメッセージを送信し、Picture ControlプロシージャではWM_PAINTメッセージがきたとき画像の描画を行う場合、このプロシージャではどの画像を描画してよいか不明です。 そのため何番の画像の表示命令が来たのかを示すために、親のダイアログボックスに貼り付けたCombo Boxが変更された場合、Picture Controlに向けてWM_PAINTメッセージと表示画像番号をパラメータとして送信したいのです。 もちろんグローバル変数を用意すれば簡単なのですが、できるだけ使用しないように記述をしたいのです。そこで考えたのが、 SendMessage(GetDlgItem(hDlgWnd, IDC_PICTURE), WM_PAINT, 0, MAKELPARAM(0, number)); このようにnumberをLPARAMの下位ワードとして送信しようと考えました。 このメッセージ送信を行い、Picture ControlプロシージャでWM_PAINTメッセージが到着したとき、LOWORD(lparam)からnumberを取り出す。 実現したい目的のため、このような方法を考えましたが、エラーなく実行できるでしょうか? もしあやしい部分が見つかった場合はアドバイスをお願いします。そしてこの方法よりも簡単に処理できる方法があれば教えていただきたいです。 自分としてはサブクラス化は面倒なので、Picture Controlをオーナードローとして扱う方法も考えましたが、うまく動きませんでしたTT

  • オートコンプリートのダイアログボックスを出すには

    IDやパスワードなどを入力したあとに、オートコンプリートダイアログボックスが自動的に表示されるようにするにはどういう設定にしたらいいのでしょうか。

  • ネットワークパスワードのチェックボックス表示

    ご存知の方、お教え願います。 ネットワーク接続のパスワードを求められ、 入力のついでにチェックボックスの 「パスワードを保存する」にチェックを入れて、 OKボタンを押してしまいました。 当然、それ以後は、ネットワーク接続の際に パスワード入力用のチェックボックスが表示されなく なりました。 そこで質問です。 再びチェックボックスが表示されるようにするには、 どのように設定すれば宜しいのでしょうか。 ネットで検索してみたのですが、私の知識の乏しさも あり、それらしき解決方法にヒットさせることが 出来なかったため、ここでお尋ねする次第です。 愚問かと思いますが、ご教授のほど宜しくお願い致します。

  • Office Outlook 2007を開くとダイアログボックスが・・・

    Office Outlook 2007を開くと「ネットワークパスワードを入力してください」というダイアログボックスが必ず出ます。パスワードを入力すれば問題なく動くのですが、入力を省く方法はありますか?

  • 今後、このダイアログボックスを表示しない。にチェックを入れたダイアログを再度表示したい

    「今後、このダイアログボックスを表示しない」 このチェックボックスにチェックを入れてしまったダイアログを、再度表示させる為の方法をご教授願いたいです。 3Dのテクスチャの加工の為に、PhotoshopにNVIDIA DDS plug-inを導入して使用していたのですが (画像編集用のツールフォトショップの、DDS形式のファイルを扱うためのプラグインです) フォトショップでDDSファイルを開く際に 「NVIDIA DDS Read Properties」 という、DDSファイルを読み込み時の設定のダイアログが表示されます。 この時、チェックを入れるチェックボックスを誤り 「Show this dialog」のチェックボックスにチェックを入れたままOKを押してしまいました。 いわゆる「今後、このダイアログボックスを表示しない」のチェックボックスです。 以降、ダイアログが表示されず 読み込み時の設定を変更できずに悩まされています。 フォトショップをアンインストール ↓ 再インストールし、初期化されている状態でプラグインを入れなおす なども試してみたのですが、ダイアログがもう一度表示される様子はありません。 となれば、「今後、このダイアログボックスを表示しない」に関する設定は別の部分で管理されているのだろうと思うのですが どうしても自力で見つける事が出来ませんでした。 どなたか、回答の方よろしくお願いしますm(_ _)m

  • ダイアログボックスについて

    ワードをファイルから開くときに 「ダイアログボックスが開いているためコマンドを実行することができません。実行するには「OK」ボタンをクリックしてからすべてのダイアログボックスを閉じて下さい」と出てきます。ワードを立ち上げてからファイルを開くとこの表示は出てこないのですが、どうすればこの表示がでなくなりますか?ちなみに他のアプリケーションは何も立ち上がってはいないのですが。

  • ダイアログボックスの移動

    VC++ であるダイアログボックスを画面外から画面内にスライドしてフェードインする機能を実装したいのですが、そういった機能を実装する場合、随時座標を変更しなければならないのでしょうか? ダイアログボックスをスライドさせるようなライブラリがあれば教えてください。 また、それが無理な場合ダイアログボックスの座標の変更方法を教えていただけるとありがたいです。 すいませんが、よろしくお願い致します。

  • ログオンのダイアログボックス?

    今日、メールの送受信を行おうとして送受信ボタンをクリックしたところログオンのダイアログボックスが出てきました。ユーザー名やパスワードは合っているので、そのままOKを押しても変化なくダイアログボックスは表示されてままでした。そこで、ラチがあかないのでキャンセルや×ボタンで閉じるとOutlookのエラー表示のボックスが出てくるんですが、送受信の両方はきちんとできているみたいです。 これはどうすれば直せるのでしょうか?またなぜ、出てくるのでしょうか?  以前も出てきたことがあったのですが、その時は気にしなかったのですが、今回も出てきたので心配してます。 使っているソフトは『Outlookバージョン6』でOSはWindows98です。 よろしくお願いします。