• ベストアンサー

GetDlgItemTextでのコントロールIDを捜すにはどうしてますか?

初歩的かと思いますが、フォームForm1内のコントロールテキストtext1、text2のコントロールIDを見つけるには、どうしたらいいんでしょうか。 GetDlgItemTextで順に捜して行くとIDは見つかりますが、識別がつかないので良い方法があるかと思いまして、宜しくお願い致します。 それらしいAPIを見つけられません・・・。

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

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

なら、この方法でハンドルを取得すればいいかと。

参考URL:
http://vbvbvb.com/jp/gtips/0751/gFindWindowExTitle.html
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

VC付属のSpy++を使えば、コントロールIDが分かります。 で、結局何がやりたいのですか?

tosi0000
質問者

お礼

有り難う御座います。 今回やろうとしているのは、別のvbプログラムから、今回のVBtext2コントロールに対して、あるデータをセットして表示させようと思っています。 GetWindowTextからコントロールIDを引き出して、そのIDとハンドルを使って、SetWindowTextからデータを送ることで可能と考えました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBA コントロールに変数を入れたい

    エクセルvbaです。 UserForm1.テキスト1.Valueを UserForms("UserForm1").Controls("テキスト1").Value のような形式でコードを書くことは可能でしょうか? UserForms("UserForm1").Controls("テキスト1").Value だとエラーになってしまいます。 accessでは Forms("Form1").Controls(“テキスト1”).Value と言う形式が可能ですが、エクセルでは不可能なのでしょうか? エクセルでは Forms("Form1").Controls(“テキスト1”).Value UserForm ("Form1").Controls(“テキスト1”).Value でもエラーになってしまいます。 UserForm1.Controls("テキスト1").Valueは コードが通りましたが、フォームの部分に変数を入れる事ができません。 ご教授よろしくお願いします。

  • コントロールが配列かどうかを知るには?

    Visual Basic6.0(SP5)で伺いたいことがあります。 フォーム上の全てのオブジェクトを For Each文で取得しています。以下の様にです。 Dim Control As Object For Each Control In Form1.Controls If TypeOf Control Is Text Then End If Next Control このとき個々のControlがコントロール配列かどうかを知りたいのですが、どうすればよろしいでしょうか?フォーム上にはコントロール配列のオブジェクトも、コントロール配列ではないオブジェクトもあります。 Control.Indexの値を参照しようとしても、コントロール配列でない場合は 「配列ではないオブジェクトです」とエラーになります。 IsArray関数でもFalseになってしまいます。 何を行いたいかというと、そのControlがコントロール配列(Text1(0)とかText1(1)とか)かどうかを調べて、そのIndexをある関数の引数にしたいのです。全てコントロール配列だったら、Control.Indexで値を取得できるのですが。 よろしくお願いします。

  • VB5でコンテナ間の子コントロールの移動は?

    少し説明しにくいのですが… VB5での実行ファイル上で(作成したEXE上で)、 Frame1(0)上にText1(0)が貼り付けられているとして、新しくFrame1(1)とText1(1)を作成する(Text1(1)はFrame1(1)の子コントロール)方法はありませんでしょうか? 現状はLoadステートメントを使用してText1(X)をForm上に作成(コピー)していたのですが、 この方法でFrameとTextをそれぞれ作成すると、Frame1(1)はForm上にできるのですが、Text1(1)はFrame1(0)の中に作成されてしまいます。 このText1(1)をFrame1(1)の中に(強制的に)作成する方法や、一度Frame1(0)の中に作成してFrame1(1)の中に移動する方法があれば、どなたか教えていただけないでしょうか? よろしくお願いいたします。 (10件ほど前の同質問者の質問の続きになります)

  • C# 同じコントロール名

    同じ名のコントロール名を持ち、同じ振る舞いをするが、formは別々なのがあって、共通化したいのですが方法がわかりません 関数A form1.TextBox1.Text=”aa” 関数B form2.TextBox1.Text=”aa” これを1つの関数にしたいです

  • VBのフォームにあるEditやButtonのコントロールIDの入力

    VB2005でフォームを作成しているのですが、 フォームに使用している、クラス名(たとえば、Button、Editなど)の コントロールIDというのは、入力できるのでしょうか? ビルドをしたときに勝手に決まってしまうものなのでしょうか? たとえば、開発画面でデザインフォーム内のButtonをクリックして、 プロパティを見ても、コントロールIDという欄が見つかりません。 できるのであれば方法をご教授お願いいたします。

  • jQueryで配列化したidのキーを取得したい

    良い方法があればアドバイスお願いします。 あるフォームのinputのid属性を配列にして、 jQueryでキーだけ抜きだし、別のid属性のvalue値に設定したいと思ってますが、 そもそもPHPのように配列のキーだけを抜き出す事がJSで簡単にできるのか教えて頂けますか。 ■やりたい事 <form action="" method="POST"> <input type="text" id="test[1]" value=""> <input type="text" id="test[2]" value=""> </form> $('[id^=test]').change(function(){ ここでtest[1] の 1 だけを抜きたいです。 普通にやれば、substringを使えば可能ですが、   PHPのように簡単に抜き出す方法があれば教えて頂きたいです。 }); 以上、宜しくお願いします。

  • フォームがリサイズされた時の各コントロールの位置変更コードについて

    教えてください。 前々から疑問だったのですが、VBでフォームをリサイズした場合に それぞれのコントロールもそれに合わせて大きさが変更されたり 移動したりという状態にするには、当然Form_Resizeのコードを 書く必要があると思うのですが、VBでツールを作成される方は 皆さんひとつひとつのコントロールの位置を計算しながら毎回 コードを書いているのでしょうか? OCXなどを使うと、勝手にコントロールの位置を調整してくれるものも ありますが、やはり皆さん自分でコードを書いていらっしゃるのでしょうか? 私が分かるのは、フォームにテキストボックスのみを貼り付けて、 Private Sub Form_Resize() Form1.text1.Top = 0 Form1.text1.Left = 0 Form1.text1.Width = ScaleWidth Form1.text1.Height = ScaleHeight End Sub と書くと、リサイズに合わせてテキストボックスが画面いっぱいにサイズ変更 するというものです。 コマンドボタンとか色々貼り付けた状態ではどのように書けばいいのか いまひとつ分かりません。 皆さんはどのようにされているのでしょうか? 是非是非教えてください。

  • リソースエディタのコントロールのIDについて

    Win32 APIを使ったプログラムを作っています。 XN Resource Editorを使っています。 スタティックテキストとエディタとOKボタンからなる (数値を入力して設定するためのダイアログボックス) ダイアログボックスを作ったのですが、プログラム上で開かず 原因がわからず色々試していたところ、 エディタの方のIDを全部スタティックテキストより大きい数字にしたら 開くようになりました。 一旦エディタだけ消してスタティックテキストだけにしたら開いたので 試しにもう1回エディタを加えたらなぜか開くようになっていて IDが原因だとわかりました。確認の為もう1度エディタの数字を 若い数字(もちろんかぶってない)にしたらダイアログボックスが開かなくなりました。 IDの順番とかってあるんでしょうか?

  • C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか

    C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか? C#2008ですが、Form1にTextBoxが30個あって、textBox1~textBox30という名前がついています。 このテキストボックスの値をForm2で取得したいのですがなかなかうまくいきません。 ------------------------- Form2: private void Form2_Click(object sender, EventArgs e){  Form1 fm = new Form1();    int No = 15; //ここを1~30まで動的にしたい  string result = fm.textBox15.Text; //直接comboBox_type15と書くのではなく「"comboBox_type" + No.ToString()」のようにしたい  MessageBox.Show(result); } ------------------------- コントロールを配列にして Control[] ctlArray = new Control[30] { fm.textBox1, fm.textBox2, …, fm.textBox30 }; のようにしてみましたが、エラーになってしまいます。 いろいろネットで検索してみたのですが、「コントロール名を動的に文字列で作成して使う」という方法がどこにも載っていなく、数時間格闘しています。 すみませんがご教授願います。よろしくお願いいたします。

  • コントロールとオブジェクトは同じ意味でしょうか?

    アクセスを勉強中なのですが 疑問に思う言葉があります。 例えば、フォームに設置したテキストボックスは コントロールでしょか?オブジェクトでしょうか? またフォームはコントロールではなく オブジェクトであってますか? ご教示よろしくお願い致します。