Q&A

  • 윈도우의 작업표시줄를 제어하려면...
taskbar가 어떻게 작동되는지 알고싶습니다....

taskbar의 위치변경이나 크기변경이 어떻게 이루어지는지....그리고....그에대한 정보를 얻는 방법 또한 궁금합니다....



조언 부탁드립니다..ㅁ꾸우벅

1  COMMENTS
  • Profile
    김선관 1999.08.27 08:37
    황돈기 께서 말씀하시기를...

    > taskbar가 어떻게 작동되는지 알고싶습니다....

    > taskbar의 위치변경이나 크기변경이 어떻게 이루어지는지....그리고....그에대한 정보를 얻는 방법 또한 궁금합니다....

    >

    > 조언 부탁드립니다..ㅁ꾸우벅



    안녕하세요.. 델파이 팁에 있던 내용을 올립니다..





    -------------------- 아래 ----------------------



    화면과 taskbar의 크기와 상태는 ?

    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.Button1Click(Sender: TObject);

    var

    FullScreenHeight,

    AvailableHeight,

    TaskBarHeight,



    hand: hWnd;

    r: tRect;

    begin

    // GetSystemMetrics 함수를 사용하여 Windows 시스템의 각종 좌표(폭, 높이)

    // 를 알아냅니다

    FullScreenHeight := GetSystemMetrics(SM_CYSCREEN); {전체 화면의 높이}

    AvailableHeight := GetSystemMetrics(SM_CYFULLSCREEN); {taskbar를 뺀 화면의 높이 }

    TaskBarHeight := FullScreenHeight - AvailableHeight; {taskbar의 높이}



    // 아래는 taskbar의 상태를 알애내는 부분입니다

    hand := findWindow ('Shell_TrayWnd', nil);

    if hand = 0 then {task bar가 설정되어 있지 않은 상태입니다};

    if hand <> 0 then

    begin

    // GetWindowRect 함수는 주어진 윈도우의 좌표(좌,상,우,하의 값을 리턴합니다}

    GetWindowRect(hand, r);

    {r.bottom - r.top 값이 taskbar의 높이가 되겠죠 }

    {만약 r.bottom - r.top 값이 6 이하이면 자동숨김(autohide) 상태임을 나타냅니다}

    end;

    end;



    end.





    --------------------------------------------------------------------------------





    삭제

    수정



    이전글

    다음글

    새글쓰기

    답장쓰기

    목록





    --------------------------------------------------------------------------------



    이 게시판은 링코가 제공하는 무료 게시판입니다. (http://www.linko.com)

    Nobreak Techonologies. Inc.의 게시판을 링코의 무료서비스를 위해 수정 제작하였습니다.





    Taskbar 감추기/보이기

    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    // Taskbar 감추기

    procedure TForm1.Button1Click(Sender: TObject);

    var

    wndHandle: THandle;

    wndClass: array[0..50] of Char;

    begin

    StrPCopy(@wndClass[0], 'Shell_TrayWnd');

    // Taskbar 핸들 얻기

    wndHandle := FindWindow(@wndClass[0], nil);

    ShowWindow(wndHandle, SW_HIDE); // hides the taskbar

    end;



    // Taskbar 보이기

    procedure TForm1.Button2Click(Sender: TObject);

    var

    wndHandle: THandle;

    wndClass: array[0..50] of Char;

    begin

    StrPCopy(@wndClass[0], 'Shell_TrayWnd');

    wndHandle := FindWindow(@wndClass[0], nil);

    ShowWindow(wndHandle, SW_RESTORE); // restores the taskbar

    end;



    end.





    --------------------------------------------------------------------------------





    삭제

    수정



    이전글

    다음글

    새글쓰기

    답장쓰기

    목록





    --------------------------------------------------------------------------------



    이 게시판은 링코가 제공하는 무료 게시판입니다. (http://www.linko.com)

    Nobreak Techonologies. Inc.의 게시판을 링코의 무료서비스를 위해 수정 제작하였습니다.