Q&A

  • FlashWindowEx 이용하여 폼을깜빡이게 했는데.. 마우스 누르면 깜빡이는것이 사라져야하는데 안돼요
폼을 깜밖이게 이렇게 했는데요..
        FWI.cbSize := SizeOf(FLASHWINFO);
  FWI.hwnd := Form3.Handle;
  FWI.dwFlags := FLASHW_ALL or FLASHW_TIMER;
  FWI.uCount := 30;
  FWI.dwTimeout := 0;
  FlashWindowEx(FWI);

마우스를 누르면 화면이 보이는데..폼이계속 깜박이네요..


화면을 보이게 화면 안깜빡이게 어떻게 안 깜박이게 하나요..

알려주세요..

감사 합니다..  감기조심하세요..
1  COMMENTS
  • Profile
    김영대 2003.04.15 06:13
    // 안녕하세요  김영대(http://www.howto.pe.kr) 입니다  
    // 아래 예제를 참고해 보세요

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, ExtCtrls;

    type
      TForm1 = class(TForm)
        procedure FormPaint(Sender: TObject);
      private
        { Private declarations }
        procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
      public
        { Public declarations }
        procedure FormFlash(flash: Boolean);
      end;

    var
      Form1: TForm1;

    implementation
    {$R *.dfm}

    procedure TForm1.WMSysCommand(var Msg:TWMSysCommand) ;
    begin
      if Msg.CmdType = SC_MINIMIZE then
        FormFlash(True); // Minimize 될때 깜박이 켜기

      inherited;
    end;

    procedure TForm1.FormFlash(flash: Boolean);
    var
      FWI: TFlashWInfo;
    begin
      if flash then
      begin
        FWI.cbSize  := SizeOf(FLASHWINFO);
        FWI.hwnd    := Application.Handle;
        FWI.dwFlags := FLASHW_ALL or FLASHW_TIMER;
        FWI.uCount  := 30;
        FWI.dwTimeout := 0;
        FlashWindowEx(FWI);
      end
      else
      begin
        FWI.cbSize  := SizeOf(FLASHWINFO);
        FWI.hwnd    := Application.Handle;
        FWI.dwFlags := FLASHW_STOP; // 해제
        FWI.ucount  := 0;
        FWI.dwtimeout := 0;
        FlashWindowEx(FWI);
      end;
    end;

    procedure TForm1.FormPaint(Sender: TObject);
    begin
      FormFlash(False); // focus를 받을때 깜박이 끄기
    end;

    end.