문제

ActiveX 컨트롤의 어떤 속성이 기본 속성인지 확인할 수 있습니까?예를 들어, VB6 컨트롤 CommandButton의 기본 속성은 무엇이며 다른 컨트롤 기본값을 어떻게 알 수 있습니까?

/편집하다: 객체 자체에 대한 소스 없이

도움이 되었습니까?

해결책 3

Microsoft Visual Studio와 함께 배포되는 OLE/Com 개체 뷰어를 사용하십시오.

유형 라이브러리로 이동하여 컨트롤이 들어 있는 라이브러리를 찾으세요. 예를 들어 CommandButton은 다음 위치에 저장되어 있습니다. Microsoft Forms 2.0 개체 라이브러리.라이브러리를 마우스 오른쪽 버튼으로 클릭하고 보기를 선택합니다.컨트롤을 나타내는 coclass를 찾아 선택합니다.

alt text

볼 수 있듯이 CommandButton의 기본 인터페이스는 ICommandButton입니다. ICommandButton을 검사할 때 dispid가 0인 속성을 찾습니다.CommandButton의 dispid 0 속성에 대한 IDL은 다음과 같습니다.

[id(00000000), propput, bindable, displaybind, hidden, helpcontext(0x001e8d04)]
void Value([in] VARIANT_BOOL rhs);
[id(00000000), propget, bindable, displaybind, hidden, helpcontext(0x001e8d04)]
VARIANT_BOOL Value();

기본 속성을 보여줍니다.

다른 팁

저는 VB를 사용하지 않지만 여기에 있습니다.

나는 찾았다 컨트롤 값 사용, 하지만 프로그래밍 방식의 솔루션은 아닙니다.코드에 액세스할 수 있는 경우 다음을 찾아보세요.

Attribute Value.VB_UserMemId = 0

메모장을 사용하여.

이를 결정하려는 시점에 따라 다릅니다.예를 들어 "값" 속성이 없는 레이블 컨트롤의 "값"을 다음과 같이 디버거에 인쇄할 수 있습니다.

debug.print "Value for cmdTest is ["+format(cmdTest)+"]"

그러면 다음과 같은 결과가 나올 것입니다:

cmdTest 값은 [False]입니다.

결과적으로 명령 버튼의 기본값은 상태(눌렸는지 여부)이므로 위의 코드 예제를 컨트롤의 클릭 이벤트에 넣으면 다른 곳에서 실행하면 "True"가 표시됩니다. , 'False'가 표시됩니다.

다른 결과의 경우 이 방법을 사용하면 최소한 찾고 있는 속성의 종류가 표시됩니다.다음을 사용할 수 있습니다.

debug.print "cmdTest's value is of type ["+TypeName(oObject) +"]"

실제 유형을 알려줍니다. 즉,

cmdTest의 값은 [Boolean] 유형입니다.

값을 설정하고 무슨 일이 일어나는지 확인하는 등 다양한 방법을 사용하여 범위를 좁힐 수 있습니다.

코드에 액세스할 수 있는지 확인하세요.

안타깝게도 대부분의 컨트롤에 대한 코드에 액세스할 수 없습니다.그러나 이 링크는 Microsoft Controls에 유용하지만 다른 컨트롤에 대해서도 알고 싶습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top