掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作の他のアプリの操作 (ID:60177)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
# επιστημη さんのコードで解決かもしれませんが....。 > あれこれ目移りしていると、「ぐちゃぐちゃ」になってしまうので、MFCに絞ってやってみます。 正直な感想として、絞るところを間違えていると思います。 シャノン さんにも既に書かれていますが、まさに彼のいうとおりです。 MFCは、C++用のライブラリです。前提としてC++の知識が必要です。 MFCはまた、Win32の薄いラッパです。前提として、Win32の知識が必要です。 MFCで、スケルトン以上のちょっと凝ったことをやるには、 必ず両者の知識が必要とされることになります。 MFCってのは、基本的に「分かってる人」がちょっと楽をするためのものであって、 初心者が簡単に、安全に使えるものでは、実はないと思ってます。 > この"MyNewClass"にあたる名前を、まず受け手のアプリが起動する時に、 > なんらかの関数で指定する必要があるのではないでしょうか。 FindWindow を使うなら当然そうなります。 A から「Bに対して」何かをするには、まず B を特定する必要があるということです。 # (Bを含む)全てのWindowとかいうならまた話は別ですが。(broadcast) > もし必要として、CreateMutexでアプリに名前をつけてやれば、それでよろしいのでしょうか。 駄目です。 Mutexはまったく関係がありません。 > ただ、この名前はアプリの名前で、クラスまで特定している訳ではないと思いました。 これも違います。 CreateMutexにつける名前は Mutexの名前であって、アプリの名などではありません。もちろん、クラスの名前でもありません。あくまで、単なるMutexの名前です。 また、FindWindow が要求する「クラス」と、C++のclassとは別物です。 # MFCで命名するような CFooBarDialog 等のことではありません。 Win32で使われる WNDCLASS の名前です。(RegisterClassEx API等で登録するもの) 通常、MFCではこの名前を意識しませんが、クラス名からWindowを検索する場合、 B で AfxRegisterClass等を用いて明示的に指定するのが一般的です。 いずれにしても、Win32/MFCの基礎を理解しないと、応用は難しいと思います。 # ちなみに、ウィンドウ名というのは、ウィンドウの上部にタイトルとして # 表示されている文字列をさします。 # こちらから B を Find する方が簡単かも知れませんが、同名のWindowが # 存在すると特定するには別の手段が必要になります。 > WM_FOOについても分かりません。 -- snip -- > ひとつのアプリの中でボタンをクリックするのと同じように、 > SendMessage(WM_COMMAND, IDC_BUTTON1)でいいのでしょうか。 よいと思いますが。 WM_COMMANDはWin32で定義されてますから、AでもBでも共通ですし、 引数さえ妥当なら B に正しく通じるでしょう。 A、B ともに自分の制御下にあるのなら、アプリ用の適当な独自 ID でも動作しますが、 他のアプリのことを考えたら、システムで登録済みの物を使うか、 もしくは επιστημηさんが書かれているように ID は登録しておくのが無難でしょう。 > この場合、今回たびたび指摘されたIDC_BUTTON1のハンドルが登場しません。。。 勘違いしているようですが、IDC_BUTTON1というボタンが押されたかのように B に動作させる場合、 IDC_BUTTON1という名前のボタンのWindowHandleは必ずしも不要です。 WindowHandleが必要なのは、通常そのボタンの親(おそらくBのダイアログ?)の方です。 > なんだかすべてが手探りで、自分でも頭の悪いと思うのですが、 > なんとか解決したく、ご指導をお願いいたします。 頭のよしあしというより、手の抜きすぎでは? 地道や学習などの段取りを飛ばしすぎなだけではないでしょうか。 分かり易い例えかは自信がありませんが、 「ドイツ語(C++)をろくに話せず、法律(Win32)もよく知らない初心者が、 ドイツ語で書かれた法律書(MFC)を持ってきて、 これで裁判に勝つ方法を教えてくれと、ドイツ法のわかる弁護士に相談する」 どう思いますか。 少なくとも私は、「これをそのまま読み上げて」的なサンプルを書く気はありませんし、 といって、必要な知識は掲示板で説明して上げられる分量ではない、という...。 初心者でよく分からないのであれば、まずそれが理解できるくらいには 脱初心者する必要があるでしょうし、体系的に基礎を抑えるのが大事ではないかと思います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.