VB에서 MDI(MultipleDocumentInterface, 다중 창 프로그램) 양식은 다음과 같이 정의됩니다. "MDI 양식은 프로그램의 배경 창 역할을 하며 MDIChild 속성이 True로 설정된 양식을 포함합니다." VB 프로그램에는 최대 하나의 MDI 상위 폼이 있을 수 있으며 여러 MDI 하위 폼이 있을 수 있습니다. MDI 상위 폼을 만드는 방법은 VB의 파일 메뉴에서 "NewMDIForm"을 선택하는 것입니다.
MDI 프로그램이 실행 중일 때 하위 창에 메뉴가 있는 경우 하위 창이 활성화되면 하위 창이 최소화되면 하위 창의 메뉴가 자동으로 상위 창의 메뉴를 대체합니다. MDI 상위 창에 나타납니다.
Windows의 범용 그래픽 인터페이스의 출현으로 컴퓨터 사용자는 특별한 학습 없이도 다양한 Windows 소프트웨어를 쉽게 사용할 수 있을 뿐만 아니라 Windows 프로그램의 인터페이스를 설계할 때 프로그램 디자이너가 따라야 하는 표준이기도 합니다. 프로그램 설계자는 문제 해결 및 구현에 집중할 수 있습니다.
Visual Basic의 출현으로 Windows 프로그램 인터페이스의 디자인이 더욱 단순화되었습니다. 표준 Windows 응용 프로그램의 인터페이스를 구현하는 데 필요한 코드의 양은 매우 적습니다. 그러나 Windows 프로그램 인터페이스 디자인의 원리를 이해하지 못하거나 VB에서의 인터페이스 프로그래밍 기술에 익숙하지 않다면 일반적인 표준을 준수하면서도 고유한 인터페이스를 디자인하고 구현하기가 어려울 것입니다. 인터페이스 디자인의 원리 인터페이스 디자인에는 일반적인 원칙이 있으며, 가장 중요한 원칙은 다음과 같습니다.
인터페이스는 일관되어야 합니다. 일관성의 원칙은 인터페이스 디자인에서 가장 위반하기 쉽고, 수정하고 피하기도 가장 쉽습니다. 예를 들어, 메뉴와 온라인 도움말에는 동일한 용어를 사용해야 하며, 대화 상자의 스타일은 동일해야 합니다.
일반적인 작업에 대한 바로가기가 있어야 합니다. 공통 작업은 자주 사용되므로 작업 순서의 길이를 줄여야 합니다. 예를 들어 열기, 저장, 다른 이름으로 저장 등 일반적인 파일 작업에 대한 바로 가기 키를 설정합니다. 일반적인 작업에 대한 단축키를 제공하면 사용자의 작업 효율성이 향상될 뿐만 아니라 기능 구현에 있어 인터페이스가 간단하고 효율적으로 만들어집니다.
간단한 오류 처리를 제공합니다. 시스템에는 오류 처리 기능이 있어야 합니다. 시스템은 오류가 발생할 때 이를 감지하고 간단하고 이해하기 쉬운 오류 처리 기능을 제공할 수 있어야 합니다. 오류가 발생한 후에도 시스템 상태가 변경되지 않거나 시스템이 오류 복구 지침을 제공해야 합니다.
유익한 피드백을 제공하세요. 운영자의 중요한 작업에 대한 정보 피드백이 있어야 합니다. 일반적으로 사용되는 작업과 간단한 작업에 대해서는 피드백을 요구하지 않지만, 자주 사용되지 않는 작업과 중요한 작업에 대해서는 시스템에서 정보 피드백을 제공해야 합니다.
작업은 되돌릴 수 있습니다. 작업은 되돌릴 수 있어야 합니다. 이는 전문적인 지식이 없는 운영자에게 유용합니다. 되돌릴 수 있는 작업은 단일 작업이거나 상대적으로 독립적인 작업 순서일 수 있습니다.
잘 설계된 온라인 도움말. 숙련된 사용자에게는 온라인 도움말이 필수적인 것은 아니지만 대부분의 비숙련 사용자에게는 매우 중요한 역할을 합니다.
메뉴 디자인 원리 및 프로그래밍
메뉴 디자인에는 다음과 같은 일반 원칙이 있습니다.
시스템 기능에 따라 메뉴를 구성합니다.
좁고 깊은 메뉴 트리보다는 넓고 얕은 메뉴 트리를 선택하세요.
의미에 따라 메뉴 옵션을 그룹화하고 특정 규칙에 따라 정렬합니다. 메뉴 옵션 제목은 짧고 명확해야 하며 키워드로 시작하는 것이 좋습니다.
자주 사용하는 옵션은 단축키 설정이 필요합니다. 위의 원칙을 결합하여 메뉴 프로그래밍에는 다음과 같은 기술과 기법이 있습니다.
메뉴 옵션 그룹화
VB에서 메뉴 옵션 그룹화는 메뉴 표시줄을 수평선으로 나누어 수행됩니다. 메뉴의 특정 위치에 Caption 속성이 ""인 메뉴 항목을 추가하면 메뉴에 수평선으로 표시됩니다. 많은 경우, 동일한 기능 메뉴는 메뉴 옵션의 기능에 따라 여러 그룹으로 나눌 수 있습니다. 이 경우 구분선을 사용하여 메뉴 항목을 그룹화할 수 있습니다.
공통옵션 단축키 설정
메뉴 디자인 창(MenuDesignWindow)을 엽니다. 각 메뉴 옵션에 해당하는 단축키(Shortcut) 목록이 있어야 합니다. 목록에서 하나만 선택하세요. 하위 메뉴나 최상위 메뉴가 있는 메뉴의 바로가기 키는 이 방식으로 정의할 수 없다는 점에 유의해야 합니다. Windows 인터페이스 디자인 원칙에 따르면 상단 메뉴의 단축키는 Alt 문자 키 형태입니다. 구현 방법은 나중에 설명하겠습니다.
일반적으로 사용되는 일부 기능 메뉴 항목에는 기존 단축키가 있습니다. 예를 들어, CTRL O를 사용하여 파일을 열고, CRTL S를 사용하여 파일을 저장하고, CTRL P를 사용하여 인쇄하는 등의 작업을 수행합니다.
메뉴 옵션에 대한 바로 가기 키를 정의한 후 바로 가기 키의 텍스트 표현이 메뉴 옵션 뒤에 나타납니다.
메뉴 옵션 활성화 및 비활성화, 표시 및 숨김 메뉴 옵션 메뉴 옵션의 일부 특수 기능을 표현하기 위해 메뉴 옵션의 활성화 및 비활성화, 표시 및 숨김 속성을 사용할 수 있습니다. 어떤 이유로 옵션이 나타내는 기능을 구현할 수 없는 경우에는 해당 옵션을 선택하지 못하도록 해야 합니다. 메뉴 옵션은 옵션의 활성화 속성을 변경하여 활성화 및 비활성화됩니다. 예를 들어 메뉴 옵션 이름이 nmuName이라고 가정하면 이 옵션을 비활성화하는 방법은 다음과 같습니다.
mnuName.Enabled=거짓
같은 방법으로 다음을 사용하여 옵션을 숨길 수 있습니다.
mnuName.Visible=거짓
이를 달성하려면 숨겨진 옵션을 다시 표시하려면 다음을 사용하십시오.
mnuName.Visible=True
성취하다.
메뉴 항목의 가시성을 숨기고 복원하는 것은 동적 메뉴 구현에 자주 사용됩니다.
메뉴 항목의 동적 로딩
메뉴 항목의 동적 로딩은 메뉴 항목의 수가 고정되지 않고 필요할 때 동적으로 로드될 수 있음을 의미합니다. 가장 간단한 예는 파일 메뉴에서 최근에 열었던 파일 목록입니다. 처음 파일을 열기 전에는 목록이 비어 있고 파일 메뉴에 나타나지 않습니다. 파일을 연 후에는 목록이 더 이상 비어 있지 않으며 열린 파일을 나타내는 메뉴 항목이 파일 메뉴에 나타납니다.
위의 예에서는 메뉴 항목의 subscript 속성(Index), title 속성(Caption), visible 속성(Visible), 메뉴 항목의 로딩 방식(LoadMethod)이 종합적으로 사용되었습니다.
구체적인 구현 과정은 다음과 같습니다.
임의의 제목을 사용하여 파일 메뉴에 메뉴 항목을 추가하고 메뉴 항목의 Name 속성이open_files_list라고 가정합니다.
Open_files_list.Visible=False가 되도록 메뉴 항목 opens_files_list의 표시 속성을 변경합니다.
Open_files_list 메뉴 항목의 아래 첨자 속성을 다음과 같이 변경합니다.
Open_files_files_list.Index=0
프로그램에서 Open_files_list 메뉴 항목의 동적 로딩을 제어합니다.
두 번째로 열린 파일의 파일 이름을 표시하려고 하며 파일 이름이 Open_file_name 파일 이름 배열에 저장되어 있다고 가정합니다. 다음 코드는 이 함수를 구현합니다.
Loadopened_files_list(1)
open_files_lise(1).Caption="&2" open_file_name(1)
Open_files_list(1).Visible=True
아래 첨자가 0인 메뉴 항목에는 Load 메서드를 사용할 수 없습니다. 추가로 프로그램이 실행될 때 메뉴 항목이 메모리에 로드되기 때문에 메뉴 항목의 제목 속성 문자에 있는 "&" 문자는 특별한 의미를 가지며 해당 기능은 속성 문자열을 표시하는 것입니다. 동시에 "&" 자체는 표시되지 않지만 "&" 바로 뒤의 문자는 밑줄과 함께 표시되고 해당 문자는 단축키가 됩니다.
인덱스가 0이 아닌 메뉴 항목이 더 이상 필요하지 않은 경우 메모리 리소스 점유를 줄이기 위해 Unload 메서드를 사용하여 메모리에서 해당 메뉴 항목을 언로드할 수 있습니다. 0입니다.
팝업메뉴 구현(PopupMenuMethod)
VB의 메뉴 디자인 창(MenuDesignWindow)에서 디자인한 메뉴는 드롭다운 메뉴입니다. 드롭다운 메뉴는 사용자가 언제든지 상단 메뉴바에서 선택을 한 후 끌어낼 수 있는 메뉴이고, 팝업 메뉴는 화면의 특정 영역에서 마우스 버튼을 클릭하면 나타나는 메뉴이다. 프로그램 인터페이스. 어떤 경우에는 팝업 메뉴를 통해 시스템 기능을 더욱 간결하고 효율적으로 만들어 사용하기 쉽게 만들 수 있습니다.
Widnows 프로그램의 팝업 메뉴는 일반적으로 프로그램 바탕화면에서 마우스 버튼을 클릭할 때 나타납니다. 팝업 메뉴는 주로 시스템의 추가 기능이나 향상된 기능을 구현하는 데 사용됩니다. 팝업 메뉴의 내용은 마우스 버튼을 클릭하는 위치에 따라 달라질 수 있습니다. 팝업 메뉴는 화면의 일부를 차지하므로 메뉴의 텍스트는 최대한 줄여야 합니다.
VB에서 팝업 메뉴를 구현하려면 드롭다운 메뉴 디자인 기술과 PopupMenu 메서드를 사용해야 합니다. 구체적인 방법은 다음과 같습니다.
메뉴 디자인 창(MenuDesignWindow)에서 해당 폼의 팝업 메뉴를 디자인합니다. 팝업되는 메뉴에는 하나 이상의 하위 메뉴가 있어야 하므로 이 메뉴에는 단축키가 있을 수 없으며 Checked 속성은 False여야 합니다. 그런 다음 팝업 메뉴의 Visible 속성을 False로 변경합니다.
디자인된 팝업 메뉴가 있는 폼의 Form_Click에 다음 코드를 추가합니다(팝업 메뉴의 Name 속성이 mnuExample이라고 가정).
하위양식_클릭()
PopupMenumnu예제
EndSub
메뉴가 왼쪽 또는 오른쪽 마우스 버튼을 눌러야 활성화되도록 하려면 Form_MouseDown에 다음 코드를 추가해야 합니다.
SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
IfButton=2thenButton=2는 마우스 오른쪽 버튼을 의미합니다.
PopupMenumnu예제
종료
PopupMenu의 전체 구문은 다음과 같습니다.
[양식]팝업메뉴이름[플래그[,x[,y]]]
플래그 값을 변경하면 팝업 메뉴의 모양을 제어할 수 있습니다. 플래그에는 두 가지 값 세트가 있습니다. 첫 번째 값 세트는 POPUPMENU_LEFTALIGNPOPUPMENU_CENTERALIGN 및 POPUPMENU_RIGHTALIGN을 포함하여 메뉴의 표시 모드를 제어하는 데 사용됩니다. 이는 각각 x를 왼쪽 테두리로, x를 가운데로, x를 오른쪽 테두리로 사용하여 표시 모드를 나타냅니다. x를 왼쪽 경계로 사용하는 것이 기본 방법입니다. 또 다른 값 세트는 각각 왼쪽 클릭 선택과 왼쪽/오른쪽 클릭 선택을 나타내는 POPUPMENU_LEFTBUTTON 및 POPUPMENU_RIGHTBUTTON을 포함하여 메뉴 항목의 선택 방법을 제어하는 데 사용됩니다. 왼쪽 클릭 선택이 기본 방식입니다. Flags의 값은 위의 두 값 집합을 OR하여 얻습니다. 예를 들어 디스플레이를 왼쪽 정렬해야 하고 왼쪽 버튼을 선택한 경우 다음과 같아야 합니다.
플래그=POPUPMENU_LEFTALIGNORPOPUPMENU_LEFTBUTTON
x와 y는 메뉴 팝업의 위치를 정의하는 데 사용됩니다. 기본값은 마우스 포인트의 위치입니다.
메뉴 항목의 기타 속성
최상위 메뉴를 활성화하려면 ALT 문자 키를 사용하고 메뉴가 활성화된 후 문자 키를 사용하여 메뉴 항목을 활성화해야 합니다. &는 메뉴 항목의 제목 속성(Caption)에 사용됩니다. 사용법과 기능은 C언어로 컴파일된 Windows 프로그램과 동일합니다.
때로는 최상위 메뉴 사이의 공간을 더 크게 하거나 메뉴 표시줄의 오른쪽 끝에 최상위 메뉴를 표시하고 싶을 때도 있습니다. 이 경우에는 공간 제목 속성이 있는 메뉴를 사용해야 합니다. 메뉴 제목이 여러 개의 공백으로 구성된 경우 메뉴는 메뉴 표시줄의 공백 수에 해당하는 공간을 차지하며, 이 메뉴의 Visible 속성이 다음과 같은 경우 메뉴 뒤에 있는 메뉴도 순차적으로 뒤로 이동합니다. False 이면 존재하지 않는 것과 같습니다.
창 디자인 원리 및 예
아래는 플로팅 윈도우 기술의 예입니다. 사용자의 주의를 끌거나 중요한 정보가 포함된 창이 다른 창에 의해 가려지지 않도록 하기 위해 플로팅 창 기술을 사용하여 "TopMost" 창을 만듭니다. 구체적인 방법은 다음과 같습니다.
(1) VB 프로그램에 다음 명령문을 추가합니다.
DeclareFunctionSetWindowPosLib"사용자"(Byvalh,Byvalhb,Byvalx,Byvaly,By
valcx,Byvalcy,Byvalf)AsInteger
GlobalConstSWP_NOMOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstHWND_TOPMOST=1
GlobalConstHWND_NOTOPMOST=2
GlobalConstFLAGS=SWP_NOMOVEOrSWP_NOSIZE
(2) frmExample 폼을 항상 앞에 있는 창으로 설정하려고 한다고 가정합니다. frmExample 폼의 Form_Load에 폼을 설정하면 됩니다.
프로세스에 다음 코드를 추가합니다.
희미한 성공
성공=SetWindowPos(frmExample.hWnd,HWND_TOPMOST,0,0,0,0,FLAGS)
항상 위에 있는 기능을 취소하려면 다음 코드를 실행하면 됩니다.
성공=SetWindowPos(frmExample.hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS)
성공은 0이 아닙니다. 이는 SetWindowPos가 성공적으로 실행되었음을 의미합니다.
MDI 프로그램에서 하나의 창은 다른 모든 창의 상위 창이며, 각 하위 창은 여러 개의 독립적인 도구를 조합한 것처럼 상대적으로 독립적인 기능을 완성합니다. 이와 관련하여 MSWord와 Windows의 FileManager가 가장 좋은 예입니다. ->