Visual Basic 2005にてプログラミングの学習を行っている

このQ&Aのポイント
  • Visual Basic 2005でプログラミングの学習を行っていますが、解決できない疑問が出てきました。
  • Form1からForm2にメッセージを送信するためにPostMessageを使用しましたが、戻り値が0になってしまいます。
  • メッセージのやり取りをする方法について知っている方がいらっしゃいましたら、教えていただけますか?
回答を見る
  • ベストアンサー

Visual Basic 2005にてプログラミングの学習を行っている

Visual Basic 2005にてプログラミングの学習を行っているのですが、どうしても解決しない疑問が出てきてしまいましたのでご質問させて頂きました。 Form1(スタートアップフォーム)とForm2を同じプロジェクト内に用意しています。 そこで、Form1からForm2にむかってメッセージを送信したいと思い、 PostMessageを使用する事にしました。 引数として、 (Form2のウィンドウハンドル, メッセージID, 0, 0) を設定しましたが、戻り値が0(失敗)になってしまいます。 以上のような方法でメッセージのやり取りをする事はできないのでしょうか? ご存知の方がいらっしゃいましたらよろしくお願いいたします。 以上です。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

APIの定義を間違えているのでは? Declear Function PostMessage _ Lib "USER32" Alias "PostMessageA" _ (ByVal H As Integer, ByVal M As Integer, _ ByVal W As Integer, ByVal L As Integer) As Integer VB2008ではこれで動きますけど。

関連するQ&A

  • VisualBasic 2005 にてプログラミングをしているのですが

    VisualBasic 2005 にてプログラミングをしているのですが、 Form1とForm2を用意して、スタートアップフォームはForm1に指定しています。 Form1が起動した時に、Form2も非表示状態で起動させる事は可能なのでしょうか? その後、Form1から、Form2の表示、非表示の切り替えを行いたいと考えています。 良い方法をご存知の方がいらっしゃればと思い質問させて頂きました。 よろしくお願いいたします。 以上です。

  • CLRのメッセージの送信について。

    WIN32APIを使って今までプログラムを作っていましたが、CLRを使ってプログラミングをしようと思い始めたのですが要領がつかめません。 やりたいことは他のアプリケーションにメッセージを送信することです。APIのPostMessage(HWND_BROADCAST, Message, 1, 0); のような感じでForm1の設定の内容を送りたいのですがどうすればそのようなことができるのでしょうか? Visual C++ で新しいプロジェクトCLR Windows フォームアプリケーション を選択してプロジェクトを作りました。 そのあとどうすればよいか教えてください。 そもそもForm1のウィンドウプロシージャはどうなってるのかすらわかりません。仕組みがちんぷんかんぷんでした。

  • VisualBasic 2005 にてプログラミングの学習をしていて、

    VisualBasic 2005 にてプログラミングの学習をしていて、疑問に思った点がありましたので質問させて頂きました。 Form1とForm2を作成しています。 その時にForm2を非表示で起動したいと考えた(Form2_Loadイベントを実行したい)のですが、 Form2を非表示で起動させる事が出来ません。 <Form1側 Button1_Click> 'モーダル表示 Dim frm2 As New Form2 frm2.ShowDialog() <Form2_Load> '非表示 Me.Visible = False 上記コードだと、Form2が表示されてしまいます。 これを非表示でLoadイベントを実行させる方法をご存知の方がいらっしゃれば教えて頂きたい と思います。 初歩的な質問で申し訳ないのですが、よろしくお願いいたします。

  • C言語にてプログラミングを行っていて、FindFirstFileにてフ

    C言語にてプログラミングを行っていて、FindFirstFileにてファイル名を取得しようとしていますがうまくいきません。 第一引数に「D:\test\aaa*」と指定して、aaa01、aaa02、aaa03のようなファイル名が取得したいと考えています。 FindFirstFileの戻り値として、INVALID_HANDLE_VALUEがくるため目的の動作になりません。 上記のような事はできないのでしょうか? いろいろ調べてみましたが解決できなくて質問させていただきました。 以上ですが、よろしくお願いいたします。

  • Visual C♯ フォーム間での値の受け渡し

    Visual C♯ フォーム間での値の受け渡しについて プログラミング初心者です。 今、勉強中なのですが、試行錯誤しても出来なかったので助けていただければと思います。 現在Visual C# 2008を使っております。 フォーム間の値の受け渡しについて、助言をお願いします。 [Form1] ・TextBox1 ・Button1 [Form2] ・TextBox2 ・Button2 1.Form1のButton1をクリックし、Form2を出す。 2.Form2のtextBox2に文字を入力し、Button2をクリックする。 3.Form1のTextBox1に、Form2のtextBox2に入力した文字を表示する。 という、作業をしたいのです。 できればソース付きで教えていただけると助かります。 よろしくお願いします。

  • Visual C++ 6.0

    今学校でVisual C++ 6.0 を使ってプログラミングの勉強をしていて家でも学習をしたいので購入を考えいるのですかVisual C++ 6.0 は家電量販店で購入する場合どのくらいの値段で買えるのでしょうか? 学生だと安く購入できるようなものはあるのでしょうか? それと友人がVisual C++ 6.0 をマイクロソフトのホームページで無償でダウンロードできたいっていたのですが本当ですか? 以上よろしくお願いします。

  • Visual C++でC言語の基礎学習

    Visual C++を使ったC言語についての質問です。 (アプリケーションの作成ではなく、コマンドプロンプト上で起動する基礎的な文法の学習です) Win32コンソール プロジェクトを作成し、そのプロジェクトの中でCのソースファイルを作成して実行確認をしようと思っています。 プロジェクト内のソースファイルが1つだけだと正常にビルドできますが、2つ以上のソースファイルを作成してビルドすると 「1 つ以上の複数回定義されているシンボルが見つかりました。」 というエラーがでてしまい、実行することができません。 新たにWin32コンソール プロジェクトを作成し、その中でソースファイルを作成しなければ実行できないのでしょうか? よろしくお願いします。

  • Visual studio 2008 のリダイレクトについて

    Visual Studio 2008を使ってC言語のプログラミングをしています C言語のプログラムの実行結果を別ファイルに リダイレクトしようとしたのですが プロジェクトのプロパティ→構成プロパティ→デバッグ コマンド引数の箇所に >output.txt と打ったのですが、実行結果はCtrl+F5でしか出力されません Visual studio 2005だとF5のデバッグだけでも出力されていたのですが Ctrl+F5だとキーをわざわざおさないといけないので非常に不憫です。 2008ですと、2005と違ってどこかプロパティの設定を いじらないといけない箇所があるのでしょうか? お分かり頂ける方、宜しくお願いします

  • Microsoft Visual C++ 2008 Express E

    Microsoft Visual C++ 2008 Express EditionのWindowsフォームアプリケーションでプログラミングを行っています。 現在は画面遷移の機能に手詰まりしています。 Form1->Form2のようにbuttonのクリックをきっかけに遷移するにはどうしたらいいか教えていただけないでしょうか? VBやC#などのソースはネットに載っていたのでそれを元に作成していましたが、完成には至りませんでした。 ご協力宜しくお願いします。

  • C# フォームプログラミングで

    public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { //Graphics grfx = CreateGraphics(); } private void Form2_Paint(object sender, PaintEventArgs e) { Form2 form2; form2.Paint += new PaintEventHandler(PaintHandler1); } static void PaintHandler1(object objSender,PaintEventArgs e) { Graphics grfx = e.Graphics; grfx.DrawString("test",Font font,Brushes.Black,0,0);//←ここでエラー } } このように書くと「引数を2個指定できる、メソッド DrawString のオーバーロードはありません」 というエラーがでてフォームに文字を表示できません 最初に「空のプロジェクト」で作れば普通にDrawStringで文字を表示できるのですが 「Windowsフォーム」を選んでからだと表示できないのはなぜでしょうか? 何がいけないのでしょう。

専門家に質問してみよう