Q&A

  • 작업표시줄의 위치와 크기...
작업표시줄의 위치와 그 크기를 알 수 있는 방법은 없습니까?

작업표시줄이 아래쪽에 있는지 오른쪽에 있는지...

그리고 아래쪽이나 위쪽에 있으면 그 높이를

오른쪽이나 왼쪽에 있으면 그 너비를 알 수 있는 방법말입니다.

조언 부탁합니다.

1  COMMENTS
  • Profile
    유수 2000.07.28 15:26


    작업표시줄의 정보는 SHAppBarMessage라는 API를 이용해 얻어 낼수 있습니다.



    아래의 소스를 참조하세요.



    먼저 uses 구에 ShellApi를 포함시킵니다.



    { 사각영역을 이용해 작업표시줄이 붙어 있는 모서리 구하는 함수 }



    function GetEdge(rc : TRect): integer;

    begin

    result := -1;

    if (rc.top = rc.left) and (rc.bottom > rc.right) then

    result := ABE_LEFT

    else if (rc.top = rc.left) and (rc.bottom < rc.right) then

    result := ABE_TOP

    else if rc.top > rc.left then

    result := ABE_BOTTOM

    else

    result := ABE_RIGHT;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    AppBarData: TAppBarData;

    begin

    // 위치좌표 얻기

    FillChar(AppBarData, Sizeof(AppBarData), 0);

    AppBarData.cbSize := Sizeof(AppBarData);

    SHAppBarMessage(ABM_GETTASKBARPOS, AppBarData);

    with AppBarData.rc do

    ShowMessage(Format(('위:%d 왼쪽:%d 아래:%d 오른쪽:%d'), [top, left, bottom, right]));



    AppBarData.uEdge := GetEdge(AppBarData.rc);



    // ShellApi.Pas

    {

    ABE_LEFT = 0;

    ABE_TOP = 1;

    ABE_RIGHT = 2;

    ABE_BOTTOM = 3;

    }

    ShowMessage(IntToStr(AppBarData.uEdge));

    end;



    viper wrote:

    > 작업표시줄의 위치와 그 크기를 알 수 있는 방법은 없습니까?

    > 작업표시줄이 아래쪽에 있는지 오른쪽에 있는지...

    > 그리고 아래쪽이나 위쪽에 있으면 그 높이를

    > 오른쪽이나 왼쪽에 있으면 그 너비를 알 수 있는 방법말입니다.

    > 조언 부탁합니다.