- PR -

[デスクトップの表示] イベント

1
投稿者投稿内容
ジロボット
常連さん
会議室デビュー日: 2004/02/29
投稿数: 40
投稿日時: 2006-05-08 11:26
[デスクトップの表示]ボタンを押したときのイベントを拾いたいのですが、どんなメッセージが出るかご存知の方ご教授下さい。Spy++で調べたんですが良くわかりませんでした

システムメニューの最小化ボタンを押したときに、最小化直前の処理を行っているのですが、[デスクトップの表示]ボタンを押したときにはこのイベントが発生しないためその処理が出来ずに困っています

よろしくお願いします
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-08 11:44
引用:

ジロボットさんの書き込み (2006-05-08 11:26) より:

システムメニューの最小化ボタンを押したときに、最小化直前の処理を行っているのですが、[デスクトップの表示]ボタンを押したときにはこのイベントが発生しないためその処理が出来ずに困っています


確か Layout イベントは発生しますね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-05-08 11:56
WM_SIZE で wParam が SIZE_MINIMIZED のようですね。多分。
ビタっとくるイベントは… SizeChanged っぽいですが、「最小化」かどうかがハッキリわかりませんね。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-08 12:07
引用:

確か Layout イベントは発生しますね。


見分ける必要がないようなので、後は WindowState を見れば良さそうかな。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ジロボット
常連さん
会議室デビュー日: 2004/02/29
投稿数: 40
投稿日時: 2006-05-08 12:28
お返事ありがとうございました

C#でWindowアプリを作成しておりまして、最小化の直前に
あるコントロールをフォームのControlsから削除する必要が
あったため、このようなスレを立てさせて頂きました

じゃんぬねっとさん
イベント関数の引数eのAffectedControlに問題のコントロールが
含まれた場合に処理するとうまくいきました。ありがとうございました

囚人さん
WM_SIZE の SIZE_MINIMIZED は最小化完了後に発生するので
今回の目的では手遅れでした。ありがとうございました
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-08 12:54
引用:

ジロボットさんの書き込み (2006-05-08 12:28) より:

C#でWindowアプリを作成しておりまして、最小化の直前に
あるコントロールをフォームのControlsから削除する必要が
あったため、このようなスレを立てさせて頂きました


え? 何故でしょうか?

削除を必要とするシナリオが想定できませんが、
個人的に知りたいので、理由を教えて頂けませんか?

もしかして、ビデオ キャプチャ コントロール系統でしょうか?
キャプチャ部分がデスクトップに居残る場合がありますが...

引用:

イベント関数の引数eのAffectedControlに問題のコントロールが
含まれた場合に処理するとうまくいきました。ありがとうございました


問題のコントロールが入っている保証はないと思いますよ。
それと、WindowState も見るべきだと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ジロボット
常連さん
会議室デビュー日: 2004/02/29
投稿数: 40
投稿日時: 2006-05-08 13:06
お返事ありがとうございます

はい、WindowsStateだけ見るようにします。そうするとWindProcで拾っていたシステムメニューの最小化は要らなくなりました。ありがとうございます

NotifyIconを使用しているのですが、現在利用しているコントロールをフォームに貼り付けた状態で最小化するとコントロールのウィンドウハンドルが破棄されるのか、その直後にフォームのShowInTaskbarをfalseにすると修復不能な例外が発生します。
そのコントロール(どこかからお客さんが拾ってきた)に問題があるのだと思うのですが、とてもわたしに理解できるものではないので、苦肉の策としてそうしております

[ メッセージ編集済み 編集者: ジロボット 編集日時 2006-05-08 13:14 ]
1

スキルアップ/キャリアアップ(JOB@IT)