2012-10-23 2 views
-3

C#에서 AutoIt 용 GUI 편집기를 작성하려고하지만 C#으로 충분하지 않습니다. GUI의 객체를 누르면 객체 주위에 정사각형 (집중)을 그립니다. 이처럼 :GUI 편집기에서 객체 주위에 사각형을 그릴 수있는 방법은 무엇입니까?

http://i.imgur.com/c9TB8.png

어떤 라이브러리는 이런 종류의 쓰기 쉽게하기 위해이 있습니까?

+0

아무 것도 없습니다. 방금 시도했지만 의미가 없었습니다. –

+2

덜 야심적인 프로젝트를 먼저 시도하십시오. – Ben

+0

나는 단지 작은 팁을 원한다. –

답변

1

DrawRectangle 중 하나를 사용하여 사각형을 그립니다. 그들 각각은 펜이 필요합니다. 보통 우리는 일반 솔리드 펜을 사용하지만, 변경된 DashStyle 속성의 펜이 필요합니다. 점선의 경우이 속성을 DashStyle.Dot으로 변경합니다. DashPattern 속성으로 실험 할 수도 있습니다.

큰 사각형 주위에 작은 사각형을 그리려면 FillRectangle 중 하나가 필요합니다. 그들 각각은 붓이 필요합니다. 편리하게 미리 정의 된 white brush이 필요합니다. 직사각형을 채운 후에는 동일한 치수로 직사각형을 그려야합니다. 이 두 함수는 함께 공백과 직사각형의 느낌을줍니다.

이미지에있는 것처럼 작은 사각형을 조금 둥글게하려면 DrawRectangle을 호출 할 때 사용한 펜 매개 변수를 변경해야합니다. LineJoinPen 클래스의 다른 속성을 사용하여 실험하십시오.

+0

정말 고맙습니다. 저에게있어 매우 귀중한 정보입니다. –

0

게시자가 게시 한 간단한 질문에 대해 매우 어렵습니다. 당신이 돌봐야 할 많은 것들이 있습니다.

  1. 먼저 구조체이기 때문에 Rectangle을 서브 클래스화할 수 없기 때문에 먼저 Rectangle 속성을 가질 클래스를 만드는 것이 좋습니다.
  2. 다른 답변에서 언급 한 것처럼 가장 간단한 작업 인 그림을 처리해야하므로 구체적이지는 않습니다.
  3. 사각형의 크기를 조정할 수 있음을 나타내는 작은 사각형이 있으므로 마우스 포인트가 큰 사각형 또는 작은 suqares에 있는지 확인하는 메서드를 구현해야합니다. 이 경우 크기를 조정할 수 있음을 나타 내기 위해 커서를 변경해야합니다.
  4. 사각형의 이동 (크기는 조정하지 않음)을 처리하려면 모든 방향으로 이동하기위한 기호로 새 작은 사각형을 만들거나 마우스 위치가 큰 사각형 내에있을 때 커서를 사용하여 처리합니다. 가장 큰 문제는 크기 조절시 변경하는 것을 확인한다
  5. , 두 가지 옵션이 있습니다 : (1) LocationSize 속성을 변경하거나 X, Y, Width과 사각형의 (2) Height 속성을 변경할 수 있습니다. 예를 들어, 오른쪽 상단으로 이동하는 경우 첫 번째 경우에는 위치와 크기를 모두 변경해야하고 두 번째 옵션을 사용하는 경우에는 Y와 너비를 변경해야합니다.
  6. 클릭 한 상태에서 마우스를 움직이면 마우스가 어느 방향으로 움직이는 지 조심해야합니다. 직사각형의 중심이 Decartes 좌표계의 중심 인 사분면에서 뷰포트를 분할하는 경우 마우스가 어느 사분면인지 식별하여 이동해야하는 사분면의 모서리 (또는 모서리)를 알 수 있습니다.
  7. C++ 에서처럼 Xor를 사용할 수 없으므로 마우스를 움직일 때마다 Invalidate()를 호출해야합니다. 따라서 사각형이 표시 될 때 이동하지 않는 모든 항목 (변경 사항이 아닌 Rectangle 및 선택한 컨트롤을 제외한 모든 항목)을 두 개의 다시 그리기 사이에 사용되는 비트 맵에 그려야하는 특수 모드에 있어야하며, 움직이는.

보시다시피,주의해야 할 사항이 많이 있습니다. 프로그램의 다른 부분을 이미 구현 한 후에 만이 작업을 시작해야합니다.

+0

나는 나를 기다리는 많은 것들이 있다고 생각한다. 나에게 말해줘서 고마워. –

관련 문제