- 締切済み
HWNDについて
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- デバイスコンテキストについて
いつもお世話になります。 MFCアプリケーションWIZでデスクトップアプリを作成しているのですが、 HDC型のデバイスコンテキストの取得方法がわかりません。 CWndのメンバ変数m_hWndにウィンドウハンドルが格納されるというのは わかったのですが、 hDC = GetDC(m_hWnd)だと間違っているのですよねー。 ご教示よろしくお願い致します。
- 締切済み
- C・C++・C#
- Wordでウィンドウハンドル(Hwnd)を取得したい
Word2007、2002を使用しています。 Wordでウィンドウハンドル(Hwnd)を取得したいと思ったのですが、 どのように取得して良いかわかりませんでした。 Excelであれば以下のように取得できました。 Excel.Application.Hwnd どのようなプログラムを書けばHwndは取得できますでしょうか? 私なりに調べてみたのですが、うまく見付けられませんでした。 もしご存知でしたら、ご教示お願いいたします。
- ベストアンサー
- オフィス系ソフト
- VC++コンソールアプリでのインスタンスハンドルの取得
VC++コンソールアプリでのインスタンスハンドルの取得 VC++コンソールアプリケーションでインスタンスハンドルを取得しようとしているのですが、 HINSTANCE hi = (HINSTANCE)GetWindowLong(HWND_DESKTOP, GWL_HINSTANCE); を実行すると、NULLが戻ってきます。 どこかまずい部分があるのでしょうか。 なお、第一引数のウィンドウハンドルは不明なため、 いくつかのWebサイトに習い、HWND_DESKTOPを指定しました。
- ベストアンサー
- C・C++・C#
- ウィンドウのハンドルが分からない
VC++2005ExpressEditionを使用しています. 「ファイル」->「新規作成」->「プロジェクト」->「CLR」->「Windowsフォームアプリケーション」とすると,ただの四角いフォームが作成されます.このフォームにボタンやテキストボックスを配置していくわけですが,このフォームの「ウィンドウのハンドル」を取得するのはどうすればいいのでしょうか.そもそも,このフォームに「ウィンドウのハンドル」というものは存在するのでしょうか. 呼び出したいWindowsAPI(WSAAsyncSelect)の引数の中に「ウィンドウのハンドル」というものがあって困っています.参考書のサンプルプログラムには「HWND hWnd」などと書いてあるのですが,VC++が作成したファイルの中を検索しても「HWND」という文字列はヒットしませんでした.
- ベストアンサー
- C・C++・C#
- ウィンドウハンドルの取得方法について
よろしくお願いします。 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.可能であれば、具体的にはどう記述すれば良いのでしょうか?
- ベストアンサー
- C・C++・C#
- visualstudioについて
visualstudio2008 c++でアプリケーションを作っているのですが, 画像のようなアプリケーションを起動させ, HWND hWnd = ::FindWindow(NULL,"D:\アプリケーション.exe"); ::SendMessage(hWnd,WM_SETFOCUS,0,0); としたのですが,ウィンドウハンドルを取得できていないみたいで,SendMessageが働いていません. また,HWND hWnd = ::FindWindow(NULL,"D:\アプリケーション.exe");の行のところで warning C4129: '' :とエラーがでているのですがどうしてでしょうか? 一応"D:\\アプリケーション.exe"と変えれば警告は消えます. よろしくお願いします.
- ベストアンサー
- C・C++・C#
- コンソールアプリケーションでのWIN32 APIメッセージ処理
コンソールアプリケーションでのWIN32 APIメッセージ処理 VisualStdio.NET 2005のC++で作成しているコンソールアプリケーションで、 PostMessageでメッセージを送信しているのに、PeekMessageで検出できません。 下のプログラムに誤った点があるのでしょうか? 尚、ウィンドウハンドルの確認部分はパスしますが、 PostMessageとPeekMessageの引数hWndをNULLに置き換えるとメッセージの検出はできるので、 やはり、ウィンドウハンドルに問題があるのかもしれません。 #include <windows.h> #include <stdio.h> void main( void ) { char OldTitle[1024], NewTitle[1024]; char WindowText[1024], ConsoleTitle[1024]; HWND hWnd; MSG Msg; /*** ウィンドウハンドルの取得 ***/ GetConsoleTitle( OldTitle, 1024 ); wsprintf( NewTitle, "%d/%d", GetTickCount(), GetCurrentProcessId()); SetConsoleTitle( NewTitle ); Sleep(40); hWnd = FindWindow( NULL, NewTitle ); SetConsoleTitle( OldTitle ); /*** ウィンドウハンドルの確認 ***/ GetWindowText( hWnd, WindowText, 1024 ); GetConsoleTitle( ConsoleTitle, 1024 ); if ( strcmp( WindowText, ConsoleTitle ) != 0 ){ printf( "ウィンドウハンドルが不正です" ); return; } /*** メッセージの送信と検出 ***/ PostMessage( hWnd, 1050, 0, 0 ); do{ while ( PeekMessage( &Msg, hWnd, 0, 0, PM_REMOVE )){ printf( "メッセージを検出しました" ); return; } } while( 1 ); }
- ベストアンサー
- C・C++・C#
- 【C#】FindWindowExの使い方を教えてください
はじめまして Visual Studio 2005を使用しています。 C#.NETは、いじり初めて1週間の超初心者です。 C#.NETでのFindWindowExの使い方を教えてください。 まずはじめに、vb.netで作ったアプリAの"Form1"があり、その中にテキストボックス"TextBox1"があります。 "TextBox1"のテキスト(キャプション?)には同じく"TextBox1"と入力されています。 そこで、C#側のアプリBでVBのアプリAの"Form1"のハンドルをFindWindowで取得します。 ここまでは出来ました。 次に、FindWindowExを使って"TextBox1"のハンドルを取得したいのですが、どうしてもうまく取得できません(0が返ってきます) 以下、C#のソースです。 (textBox1のMultilineはTrueです) ================================================================== using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll")] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] static extern IntPtr FindWindowEx(IntPtr hWnd, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); public IntPtr hWnd = (IntPtr)0; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { IntPtr hWnd; IntPtr hWndTest; string sClassName = null; string sWindowText = "AppA"; // アプリAのウインドウハンドルを取得 hWnd = FindWindow(sClassName, sWindowText); textBox1.Text = "ウインドウのハンドル " + hWnd + "\r\n"; // アプリAのウインドウ内のTextBox1のハンドルを取得 hWndTest = hWnd; sClassName = null; sWindowText = "TextBox1"; hWnd = FindWindowEx(hWndTest, IntPtr.Zero, sClassName, sWindowText); textBox1.Text += "テキストボックスのハンドル " + hWnd; } } } ================================================================== Spy++で覗くとテキストボックスにもハンドルが割り与えられているので取得できるはずだと思っているのですが、どうしてもいまくいきません。 どうか、よろしくご享受願います。 ちなみに、アプリAのテキストボックスのクラス名が”WindowsForms10.EDIT.app.0.378734a”となっているのですが、これはどの環境でビルド(コンパイル)しても不変なのでしょうか? 不変だとしたら、クラス名を使えば悩まずに取得できると思うのですが・・・(実験済み)
- ベストアンサー
- その他(プログラミング・開発)
- 【MFC】Version情報の取得
MFCでアプリケーションを作成しています。 リソースビュー⇒「Version」⇒「VS_VERSION_INFO」の、 キー「FILEVERSION」の値を取得するにはどのように実装すれば良いのでしょうか? ご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。
- ベストアンサー
- C・C++・C#
補足
説明不足でした。申し訳ありません。 補足説明をさせていただきますと、MFCアプリWIZで時計を作っており、 針をBitmapで描画したいわけです。 初心者でして、ネット上のサンプルソース等を参考に実装しているのですが、 サンプルソース BOOL InitDIB(HWND hWnd) { HDC hDC; BITMAPINFOHEADER bi; bi.biSize = sizeof(BITMAPINFOHEADER); bi.biWidth = 256; bi.biHeight = -256; //top-down bi.biPlanes = 1; bi.biBitCount = 32; bi.biCompression = BI_RGB; bi.biSizeImage = 0; bi.biXPelsPerMeter = 0; bi.biYPelsPerMeter = 0; bi.biClrUsed = 0; bi.biClrImportant = 0; hDC = GetDC(hWnd); hBmp = CreateDIBSection(hDC, (LPBITMAPINFO)&bi, DIB_RGB_COLORS, (void **)(&buf), NULL, 0); if(!hBmp) return FALSE; memDC = CreateCompatibleDC(hDC); SelectObject(memDC, hBmp); ReleaseDC(hWnd, hDC); return TRUE; } を流用したい時に、そういえばウィンドウハンドルってMFCアプリで どのように扱えばいいのかなと疑問に思い、質問させていただきました。 基本のところだと思うのですが、早急に機能実現をしないといけない 状況でして、自己解決に限界を感じました。 よろしくお願いいたします。