DestroyWindow等が上手く作動しないのですが・・・

解決


Feim  2003-12-26 09:52:00  No: 81155  IP: [192.*.*.*]

Dim WHND As Long
WHND = FindWindow("SciCalc", vbNullString)
DestroyWindow WHND

  という感じで、あるクラス名を持つトップレベルウインドウの
ハンドルを取得して、そのウインドウを破棄しようとしている
のですが、ハンドルは取得できても(WHNDの戻り値は0以外)
何故か最後の関数でエラーが帰ってきてしまい、ウインドウの破棄に
失敗してしまいます。NETでサンプルコードを探して、ほかにも

PostMessage WHND,WM_CLOSE,0,0

  ・・・等色々試したのですが悉く失敗しました。当方の開発環境が
Win2kということもあって、ひょっとしたらOSのセキュリティー
管理とかで無効になっているのかな?・・・とも思ったのですがどうなのでしょうか。
宜しければ解決策などお教え頂けると幸いです。
よろしくお願いします。

編集 削除
Feim  2003-12-26 10:33:19  No: 81156  IP: [192.*.*.*]

すみません、解決しました。
DestroyWindowは別スレッドが作成したウインドウは閉じられないんですね。
それとWM_CLOSEですが、以前MSDNで見たことがあったのでそのまま
使っていたため「Const WM_CLOSE = 16」とするのを忘れていました。
お騒がせして申し訳ございませんでした(汗。

編集 削除
Feim  2003-12-26 10:33:53  No: 81157  IP: [192.*.*.*]

あ、「解決」チェックするの忘れてました・・・(苦笑。

編集 削除