• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ウィンドウのハンドルが分からない)

ウィンドウのハンドルが分からない

このQ&Aのポイント
  • VC++2005ExpressEditionを使用しています。フォームに配置されたボタンやテキストボックスの「ウィンドウのハンドル」を取得する方法について知りたいです。
  • 参考書のサンプルプログラムには「HWND hWnd」と書かれていますが、VC++が作成したファイルの中には「HWND」という文字列はありません。WindowsAPIの引数に「ウィンドウのハンドル」が必要なのですが、どうすれば取得できるのでしょうか。
  • Windowsフォームアプリケーションを作成する際、フォームに配置されたオブジェクトにはそれぞれ「ウィンドウのハンドル」が割り当てられています。この「ウィンドウのハンドル」を取得する方法について教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form_members.aspx http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemwindowsformsiwin32windowclasshandletopic.asp http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemwindowsformsnativewindowclasshandletopic.asp あたりをみればいいんじゃないでしょうか >書かれた内容がまったく理解できません. プロパティというのは、C++では言語的にはそういうのは馴染みがないかもしれませんけど、外から見ればメンバ変数のようだが、実体はアクセスしようとするメソッドに置き換えられていてset, get できるものです。 正直まったく理解できませんというのが、理解できません。 なにがわからないのか、もうちょっと具体的に書いてくれないと何がわからないのかわからない・・ プロパティって開発画面で表示されませんでしたっけ? どうやってプログラムしてるんでしょう? ヘルプは使ってますか?

magicoflove
質問者

補足

 重ねて御礼申し上げます.  恐らく,よっぽど馬鹿な質問をしてるのだと思います.「プロパティ画面」もヘルプも使用していますが,ウィンドウハンドルについて知ることはできませんでした(探し方も上手くないのでしょう.今思えば,『パブリックプロパティ』で検索すれば良かったのかも).  プログラムは,VC++2005 Express Editionについて書かれた二冊の本(Amazonで検索して一番上に出てくる日本語の二冊)を見ながらそのとおりにやってます.

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

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Form クラスのパブリックプロパティ Handle がウインドウハンドルです。

magicoflove
質問者

補足

 回答いただきありがとうございます.  しかし,大変申し訳ないのですが,書かれた内容がまったく理解できません.  もう少し,噛み砕いていただけると大変助かります.

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

関連するQ&A

  • 親ウインドウのウインドウハンドルの必要性について

    お願いします。 WIN98 VC++6.0 SDKにて ウインドウをクリックするとダイアログボックスが表示されるサンプルプログラムがあります。 MessageBox(hWnd, s, "ダブルクリック", MB_OK);の第1引数には親ウインドウのウインドウハンドルを指定するとありましたが、NULLに変えても問題無く動きました。 第1引数はなんでも良いのでしょうか? また、必ず親ウインドウのウインドウハンドルを指定しなければならない時はどのような場合でしょうか? よろしくお願いします。

  • ウィンドウハンドルの取得方法について

    よろしくお願いします。 WIN98 VC++6.0 MFC にて 色々勉強しておりますが、今だにウィンドウハンドルの取得方法が良く分かりません。 SDKのサンプルを見ると、なるほどそうするのか。と思いますが、MFCになると分からなくなります。 たとえば、 ウィザードのデフォルトに従いダイアログベースでのプロジェクトを作成し、ボタン1と2を配置します。 以下のコードでボタン1を非表示にできます。 void CPppDlg::OnButton2() { CWnd* pButton1 = GetDlgItem (IDC_BUTTON1); pButton1->ShowWindow(SW_HIDE); } このコードにおいて、 1.SDKの BOOL ShowWindow( HWND hWnd, // handle to window int nCmdShow // show state of window ); を用いて引数が2個の形式に書きかえることは可能でしょうか? 2.可能であれば、具体的にはどう記述すれば良いのでしょうか?

  • VC++2010ウインドウを常に最前面に表示する

    VC++2010ExpressEditionのフォームアプリケーションにより、簡単な機能のボタンの付いた小さいウインドウを作成しました。 起動した時に、これを常に最前面に配置する方法を教えてください。 いろいろ調べた結果、SetWindowPos を用いればよいことは分かったのですが これを具体的に、どこに書けばいいのか分かりませんでした。 Form1.h の中に書くのでしょうか? その他の場所でしょうか? また、その時の引数のハンドルは、どのように取得するのでしょうか? 基本的なことだと思いますが、インターネットを数時間調べても分からなかったので、質問させて頂きます。 よろしくお願いします。

  • VC++コンソールアプリでのインスタンスハンドルの取得

    VC++コンソールアプリでのインスタンスハンドルの取得 VC++コンソールアプリケーションでインスタンスハンドルを取得しようとしているのですが、 HINSTANCE hi = (HINSTANCE)GetWindowLong(HWND_DESKTOP, GWL_HINSTANCE); を実行すると、NULLが戻ってきます。 どこかまずい部分があるのでしょうか。 なお、第一引数のウィンドウハンドルは不明なため、 いくつかのWebサイトに習い、HWND_DESKTOPを指定しました。

  • ウィンドウのないActiveXコントロールへのメッセージ通知方法

     内部的にWinsock2を使用して別のサーバアプリケーションと通信を行うActiveXコントロールを作成しています。サーバからのデータ受信を非同期で行うため、WSAAsyncSelect()関数を使用して指定したウィンドウにWinsockからイベントメッセージ(メッセージIDはWM_USER+1を使用)を通知させます。 コントロールをウィンドウなしのアクティベーション使用で開発しているので、WSAAsyncSelect()のメッセージ通知対象ウィンドウがコントロール内にありません。 コンテナによりコントロール充てにメッセージを送ってくれるということなので、コンテナのウィンドウハンドルを取得し、WSAAsyncSelect()のメッセージ通知対象ウィンドウに設定しました。が、コントロールのOnMessageWindowless()にWM_USER+1のイベントは来ていないようです。 私が試したウィンドウハンドルは、次のコードで取得できるものです。 1. AfxGetMainWnd()->m_hWnd 2. CWnd::GetActiveWindow()->m_hWnd (CWndは使用するなとありましたが)  取得するウィンドウハンドルが間違っているのでしょうか?それとも、コンテナアプリケーションはWM_USERメッセージをコントロールに送ることができないのでしょうか?もしくは、コンテナにWM_USER+1のメッセージはコントロールへ、という設定をしてやる必要があるのでしょうか?  なお、なぜウィンドウありのコントロールにしないかと申しますと、ウィンドウありだとコンテナ(IEを想定)に乗った直後にウィンドウが生成されず、自分のウィンドウハンドルを取得しようとするとNULLが返ってしまうからです。ユーザがマウスで一度クリックすればOKなのですが・・・オブジェクト生成時に自動的にウィンドウを生成する方法がわかりませんでした。もしこちらが分かればウィンドウありで行くこともできますので、分かる方いらっしゃいましたらお願いいたします。

  • textboxに文字列を挿入したい。

    すみません。 質問があります。 VB6.0 windows2000 AファイルのFormの中にtextBoxを作成します。 BファイルにsendMessageAPIを使ってAファイルのTextBoxに文字列を送りたいのですが、うまくいきません。 sendMessage(hWnd,WM_SETTEXT,0,"テスト") FindWindowを使って、hWndのハンドルを取得したいのですが、うまくいきません。 他にハンドルの取り方ってあるのでしょうか? また、sendMessageのだい4引数は文字列を挿入しても文字化けを起こします。どうしてかよくわかりません。 どうしてもうまくいかないのですみませんが、ご存知の方いたら教えてください。

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

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

  • C++のクラス内で、ウインドウプロシージャなどの・・・

    Visual C++ 2008で、Windowsフォームアプリケーションを作っています。 .NET Frameworkでは実現できないウインドウを作るために、WindowsAPIに頼り始めたのですが これが分からないのでとても不便な状態なのですが WindowsAPIで使うための、ウインドウプロシージャや、ウインドウハンドルや、デバイスコンテキストハンドル・・・等を C++のクラスの中で、staticを付けずに普通のメンバとして組み込む事は、出来るのでしょうか? - - - - - - 今までは分からなかったので、とりあえずAPIに触れてみようと思いstaticをつけてどうにかやっていたのですが、それだとクラス内のインスタンスメンバにアクセスできないので、クラス内に作ってる意味がない感じになってしまいます。

  • ファイルオープンの際のウィンドウハンドルの取得方法

    VC++2008にてプログラムを作成しています。 自作プログラム(疑似エクスプローラ)にて、 ShellExecute関数でファイルをオープンさせた際に、 開かれたファイルウィンドウのHWNDまたはCWndを 取得したいのですが、実現方法が分かりません。 ・やりたい事  複数ファイルをオープンさせて、各ファイルが閉じられた時に、  ファイル毎に任意の処理を行いたい。 マルチスレッドにて、CreateProcess→ファイルオープンを行い、 WaitForSingleObjectで、ファイルが閉じられるまで待機し、 コントロールが戻ってきたら、任意処理をするようにしていたのですが、 PowerPointファイルは複数ファイルを立ち上げても、 1プロセスにしかならないため、実装の変更を余儀なくされました。 CWnd->m_hWndで、各ファイルの区別が付けられるのではないかと 考え、現在、テスト用処理を組んでいるところです。 ファイルが閉じられたかどうかは、APIフックを用い、 DestroyWindowが呼ばれた際のHWNDを、自作プログラム側に送り、 ShellExecute時に取得しておいたHWND(またはCWnd)であれば、 任意処理へ移行。といった流れを考えています。 ShellExecute時に立ち上がったファイルのハンドルの 取得方法、または、全く別に、上記の目的を満たす 処理方法がありましたら、アドバイスお願いします。

  • Zオーダーが上から2番目のウインドウのハンドル

    おせわになります。 Zオーダーが上から2番目のウインドウのハンドル知る必要がありましたので、 GetWindowが使えるのではないかと思い、プログラムを作りましたがうまくいきませんでした。 次のようにしてみました。 Form1という名前の自作のフォームがメモ帳の上に重なっていたとします。 このとき、 Text1.Text = GetWindow(Form1.hwnd, GW_HWNDNEXT) こようにしてもメモ帳のハンドルが得られませんでした。 Zオーダーが上から2番目のウインドウのハンドルを知る方法を教えて頂けないでしょうか。 よろしくお願い致します。

このQ&Aのポイント
  • iPhoneとプリンターの接続に関して、brother mobile connectを使いましたが接続できません。
  • 接続する段階でプリンターのLEDは点滅しているが、スマホのwifiネットワークに接続できません。
  • どうすればiPhoneとプリンターを正常に接続できるでしょうか?
回答を見る

専門家に質問してみよう