- 締切済み
GUIへの外部ソフトウェアのウィンドウ組込み
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- machongola
- ベストアンサー率60% (434/720)
こんにちは。 メモ帳ウィンドウを見つけ出さなくてはいけません。 見つけたメモ帳ウィンドウの「親ウィンドウ」に、自分自身のウィンドウを指定すれば出来ます。 当方、Pythonは未経験ですが、どの様な言語であっても、Windows上でウィンドウに対して突っ込んだ操作を仕掛けるならば、Win32APIが必要な筈です。 以下はVisual Studio 2005 MFC(C/C++)で書いていますが、Win32API部分に関しては、どの言語からも共通の筈です。 //※1 以下はメモ帳ウィンドウを置く為のスタティックコントロールウィンドウ(自分側) CWnd* pWnd = GetDlgItem(IDC_STATIC_LAND); //メモ帳ウィンドウを探す //http://msdn.microsoft.com/ja-jp/library/cc364634.aspx HWND hNotePad = ::FindWindow(TEXT("Notepad"), NULL); //メモ帳ウィンドウの親ウィンドウを※1に設定する //http://msdn.microsoft.com/ja-jp/library/cc411061.aspx ::SetParent(hNotePad, pWnd->GetSafeHwnd()); //メモ帳ウィンドウのスタイルを取る //http://msdn.microsoft.com/ja-jp/library/cc364760.aspx const DWORD dwStyle = ::GetWindowLong(hNotePad, GWL_STYLE); //メモ帳ウィンドウのスタイルに子ウィンドウスタイルを付加する //http://msdn.microsoft.com/ja-jp/library/cc411203.aspx ::SetWindowLong(hNotePad, GWL_STYLE, dwStyle | WS_CHILD); //メモ帳ウィンドウのスタイルが変わった事を通知する //http://msdn.microsoft.com/ja-jp/library/cc411206.aspx ::SetWindowPos(hNotePad, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); //メモ帳ウィンドウの位置やサイズ調整する為クライアント領域を取る //http://msdn.microsoft.com/ja-jp/library/cc364604.aspx RECT rc; ::GetClientRect(pWnd->GetSafeHwnd(), &rc); //メモ帳ウィンドウを動かして位置とサイズの調整する //http://msdn.microsoft.com/ja-jp/library/cc410924.aspx ::MoveWindow(hNotePad, 0, 0, rc.right, rc.bottom, TRUE);