2013-05-01 3 views
3

그래서 C# .NET에서 컨트롤을 생성하고 VB6에서이 컨트롤을 사용할 수있는이 문제가 있습니다. 그러나 vb6에서는 .net 컨테이너에 경계선없는 컨트롤을 배치 할 수 없으므로 특수 .NET Label을 만들고 vb6에 노출하려고 시도했습니다.VB6에서 .NET 컨트롤을 투명하게 만들기

내 양식에이 라벨을 붙일 수는 있지만 투명하게 만들 수는 없습니다.

UserControl_AmbientChanged을 사용해 보았지만 Ambient.BackColor은 항상 실제 부모 색상 (예 : 프레임)이 아닌 양식의 색상 인 것처럼 보입니다. UserControl.Parent을 사용하고 부모의 BackColor를 사용할 때도 마찬가지입니다. Extender.Parent과 동일합니다. 그것이 효과가 있었다고하더라도, 배경이 이미지 인 경우에는 꽤 좋지 않을 것입니다.

나는 SetWindowLong을 사용해 보았지만 캡션에 상관없이 전체 라벨을 보이지 않게하거나 투명하게 만듭니다.

여기 bliting 기술을 사용하여 시도했습니다 : http://www.vbforums.com/showthread.php?438895-transparent-text-box-or-label-with-scrollbars&highlight=transparent%20TextBox하지만 내 컨트롤이 PictureBox가 아니기 때문에이 기능이 작동하지 않았습니다.

나는 옵션이 없습니다. 이전에이 작업을 수행 한 사람이 있습니까? 방법? 어떤 도움이라도 매우 감사 할 것입니다.

+1

정말 Visual Basic 6으로 작성된 응용 프로그램을 2013 년에 만들었습니까? VB6 응용 프로그램 내에서 C# 컨트롤을 사용한다고 들어 본 적이 없습니다. –

+1

단순히 vb.net 응용 프로그램을 vb.net으로 이식하지 않은 이유가 있습니까? –

+3

@Ramhound, 저는 Fortune 지 선정 500 대 기업을 위해 일하고 있습니다. 그런 환경에서 대규모 생산 엔터프라이즈 VB6 응용 프로그램을 실행하는 것은 드문 일이 아닙니다. 실제로 우리에게는 20K + 사용자와 매일 수백만 건의 트랜잭션을 처리하는 서비스가 있습니다. 그러나 서서히 지속 가능한 기술을 통합하기 시작합니다. –

답변

0

사용자 상황을 올바르게 이해하면 .NET 사용자 정의 컨트롤의 배경색을 별개의 것으로 설정할 수 있습니다 (특정 16 진수 색상 코드가있는 핑크색). 그런 다음 VB6 응용 프로그램에서이 동일한 색상 코드 (분홍색)를 속성 시트 내의 투명한 색상으로 설정합니다.

나는 수년간 이러한 방식으로 VB6 사용자 컨트롤에서 투명도를 처리했으며 정상적으로 작동하는 것 같습니다.

기업용 응용 프로그램의 경우 2013 년 VB6에 대한 의견으로는이 사람들이 분명히 소프트웨어 산업에서 오랫동안 일하지 않았 음이 분명합니다. VB6은 오늘날에도 여전히 사용되고있는 수백만 개의 엔터프라이즈 응용 프로그램에서 구현되었습니다. 나는 그러한 코멘트를 게시 한 사용자에 대해 한 가지 질문을 할 것입니다. 다른 언어로 VB6 ActiveX 컨트롤의 기능을 어떻게 제공 할 수 있습니까? 답변 -> 할 수 없습니다.

+0

** 오늘날 수백만의 기업용 애플리케이션이 여전히 사용 중입니다 **; 수천 개의 엔터프라이즈 애플리케이션이 매일 수 백만 명의 사용자에게 서비스를 제공했습니다. –

+0

나는 당신이 말하는 것을 이해하는지 모르겠다. VB6의 .NET 컨트롤에는 .NET 코드의 인터페이스를 통해 노출 된 속성 만있다. 원래 .net 컨트롤의 backcolor 속성을 노출했기 때문에 vb6에서 쉽게 backcolor를 변경할 수 있지만 "마스크 색상"속성이나 "이 색상을 투명하게 만들기"속성은 기본적으로 없습니다. .NET 인터페이스/vb6 코드에 무엇을 추가해야합니까? – Felix

+0

http://msdn.microsoft.com/en-us/magazine/jj133828.aspx –

관련 문제