Graphisoft®

API Development KitVersion: 18

ACAPI_Register_Menu

애드온의 메뉴 항목들을 등록합니다.

    GSErrCode  ACAPI_Register_Menu (
        short             menuStrResID,
        short             promptStrResID,
        APIMenuCodeID     menuPosCode,
        GSFlags           menuFlags
    );

 

파라미터

menuStrResID
[in] 메뉴 리소스의 리소스 ID입니다. 이것은 애드온의 리소스 fork 안에 있어야 합니다.
promptStrResID
[in] 프롬프트 문자열 리소스의 리소스 ID입니다. 이것은 애드온의 리소스 fork 안에 있어야 합니다. 이 문자열들은 상태 바에 나타나게 됩니다.
menuPosCode
[in] 명령을 삽입할 서버 애플리케이션의 메뉴를 정의합니다.
menuFlags
[in] 등록된 메뉴 항목 전/후에 메뉴에서 구분자 항목을 볼지 여부를 설명하는 flag입니다. 가능한 값은 다음과 같습니다: MenuFlag_Default, MenuFlag_SeparatorBefore, MenuFlag_SeparatorAfter

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
 

다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.

 

설명

이 함수는 애드온의 RegisterInterface 루틴에서 호출해야 합니다. 서버 애플리케이션의 다른 메뉴에도 나타나면서 동일한 애드온에서 2개 이상의 메뉴를 등록할 수 있습니다.

제공된 menuStrResID 파라미터는 Initialize 루틴에서 호출해야 하는 ACAPI_Install_MenuHandler 함수에서 동일해야 합니다.

다음 시나리오들이 가능합니다:

보시다시피, 애드온은 MenuCode_UserDef와 메뉴 위치를 사용하는 경우 자신의 메인 메뉴를 정의할 수 있습니다. 이 경우 STR# 리소스의 첫 번째 항목은 메인 메뉴의 제목이 되고, 다른 항목들은 비-메인 메뉴 케이스의 메뉴 항목들에 해당합니다. 이 첫 번째 항목이 서버 애플리케이션의 기본 메뉴 제목 중 하나와 동일한 경우, API는 새로운 기본 메뉴를 열지 않고, 오히려 해당 메뉴에 대한 규칙에 의해 정의된 대로 애드온의 메뉴를 원래의 기본 메뉴에 삽입합니다. 이것은 또한 이미 존재하는 메뉴 제목(예. Window)을 사용할 경우, 애드온을 삽입할 위치가 없어서 당신의 애드온 메뉴는 나타나지 않습니다.

이는 Add-Ons 폴더 내의 애드온의 위치가 애드온의 커맨드의 메뉴 위치에 영향을 미치지 않는다는 것을 의미합니다.

메뉴 항목들의 외형은 필수 리소스 섹션에 설명된 메뉴 항목 문자열 리소스에 추가된 제어 코드들에 의해 제어될 수 있다.

 

예제

GRC 파일 내부:

'STR#' 32500 "Menu strings" {
/* [  1] */     "Show Selections^ES^E3^ED^32500"
}

'STR#' 32520 "Status bar prompt strings" {
/* [  1] */     "Show Selections palette"
}

/* Toolbar icon resource ("RFIX\Images\TB_show_selections.bmp") */
'GBMP' 32500 "TB_show_selections" {
    "TB_show_selections"
}

RegisterInterface 함수 내부:

//------------------------------------------------------
// Interface definitions
//------------------------------------------------------
GSErrCode __ACENV_CALL    RegisterInterface (void)
{
    GSErrCode    err;

    // Register menu command
    err = ACAPI_Register_Menu (32500, 32520, MenuCode_Palettes, MenuFlag_Default);

    return err;
}   // RegisterInterface

 

요구사항

버전: API 4.1 또는 이후
헤더: ACAPinc.h

 

참고사항

APIMenuCodeID
ACAPI_Install_MenuHandler
RegisterInterface
필수 리소스
API 함수