DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

フォーム最小化タイミングなど

            _____
   ∧,,∧    /
   ミ,,゚Д゚,,ミ <  どもー。
   ミ つ つ  \_____
 @ミ   ミ
   (ノ'''''∪

2ちゃんで、こんな質問を聞いたので
ここで、軽くお返事。

> 234 名前:デフォルトの名無しさん[sage] 投稿日:2007/02/01(木) 22:26:19 ID:
> フォームが最小化されたことを通知するイベントってありませんか?
> Resize・ConstrainedResize・CanResizeでは最小化したときにイベントが発生しなかったし、
> WM_SIZEのメッセージハンドラを作っても最小化時にメッセージが飛んでこない・・・
> 環境はDelphi5 + WinXP Proです



・WM_SYSCOMMANDメッセージはFormのシステムメニュー及び
 右上のボタンをクリックした時に送られる

・サブフォームとしての最大化/最小化/通常化は
 WM_SIZEメッセージを監視するとよい。
  最小化イベント
    WM_SIZEメッセージがSIZE_MINIMIZEDの時
  ・通常化→最小化
    Self.WindowStateがwsNormal
  ・最大化→最小化
    Self.WindowStateがwsMaximized
    
  最大化イベント
    WM_SIZEメッセージがSIZE_MAXIMIZEDの時
  ・通常化→最大化
    Self.WindowStateがwsNormal
  ・最小化→最大化
    Self.WindowStateがwsMaximized

  通常化イベント
    WM_SIZEメッセージがSIZE_RESTOREDの時に
  ・最大化→通常化イベント
    Self.WindowStateがwsMaximize
  ・最小化→通常化イベント
    Self.WindowStateがwsMinimized
  ・リサイズ時(必要なし)
    Self.WindowStateがwsNormal

・メインフォームとしての最大化/最小化/通常化は
 サブフォームの場合から最小化イベントが起きないとみなすとよい。
 その代わりApplicationMinimizeとApplicationRestoreが発生する
  最小化イベント
    ApplicationMinimizeイベント
  ・通常化→最小化
    Self.WindowStateがwsNormal
  ・最大化→最小化
    Self.WindowStateがwsMaximize
  最大化イベント
    WM_SIZEメッセージがSIZE_MAXIMIZEDの時
  ・通常化→最大化
    Self.WindowStateがwsNormal
  ・最小化→最大化
    最大化して最小化した後にRestoreするときに
    起きるが、それはApplicationRestoreイベントになる。
  通常化イベント
  ・最小化→通常化
    ApplicationRestoreイベント
    Self.WindowStateがwsNormal
  ・最大化→通常化
    WM_SIZEメッセージがSIZE_RESTOREDの時に
    Self.WindowStateがwsMaximize

こんな感じになります。
MainWindowがApplicationWindowに隠されている事が
非常によくわかります。

で、とりあえずこれも使ってくれと、言いたい。
http://delfusa.main.jp/delfusalibrary/20060527212010/FormWSEvent/FormWSEvent.pas


それにしても、こんな所で返事してるのは
アク禁で書き込めねーからだもん....

スポンサーサイト

| 未分類 | 01:23 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/39-066c5f04

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。