与えられた形
System.Windows.Forms::Form Form1;
とウィンドウハンドル
HWND hWnd;
システムのMicrosoftドキュメント)によると、「コントロールがバインドされているウィンドウハンドルを取得します。(コントロールから継承されます。)」パブリックプロパティとして実際に存在するForm1のHandleプロパティにhWndを設定するにはどうすればよいですか。 .Windows.Forms :: Form ?フォームForm1のコンストラクターで、試しました
hWnd = this.Handle;
しかし、コンパイラは文句を言います:
エラーC2228: '。Handle'の左側にはclass/struct/unionタイプが必要です 'MyNamespace :: Form1 ^ const'代わりに '->'を使用するつもりでしたか?
だから私は試してみます
hWnd = this->Handle;
そしてただ
hWnd = Handle; // Since I'm in the Form
そしてコンパイラはこう言います:
エラーC2440: '=': 'System :: IntPtr'から 'HWND'に変換できませんこの変換を実行できるユーザー定義の変換演算子がないか、演算子を呼び出すことができません
私は解決策を見つけました、そしてそれが恨みであるかどうか気にしません。
hWnd = static_cast<HWND>(Handle.ToPointer());
動作します。