- ベストアンサー
タイトルバーの変更
例えばタイトルバーが"abc"というウィンドウがあったとして、そのウィンドウのタイトルバーを"aaa"という風に変更したいのですが、やり方がわかりません。ご教授の方、よろしくお願いします。 ちなみに開発環境はVC++です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 //win32ネイティブなら LPCTSTR lpsz = TEXT("aaa"); ::SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)lpsz); //MFCなら pWnd->SetWindowText(TEXT("aaa")); //C++/CLIマネージドなら form->Text = "aaa"; で出来ると思います。
その他の回答 (1)
- machongola
- ベストアンサー率60% (434/720)
こんばんは。補足頂きました。 此れは難しいですねえ・・・。プロセス間メモリを使用してWM_SETTEXTを送信しても無理でした。 他プロセスのウィンドウも自分の作成したアプリならば、WM_COPYDATAで遣り取り出来ます。 //送信側 TCHAR buf[] = TEXT("aaa"); COPYDATASTRUCT cds = {0}; cds.cbData = sizeof(buf) / sizeof(buf[0]);//\0文字も含めて送信する cds.lpData = buf; const INT iResult = ::SendMessage(hWndOutProcess, WM_COPYDATA, 0, (LPARAM)&cds); //受信側 LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,UINT wParam,LONG lParam) { switch(msg) { case WM_COPYDATA: { COPYDATASTRUCT* pdata = (COPYDATASTRUCT*)lParam; ::SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)pdata->lpData); } } return DefWindowProc(hWnd,msg,wParam,lParam); }
補足
自分のウィンドウは変更できたのですが、 別のプロセスのウィンドウの場合はどうやればいいのでしょうか。