찾다
백엔드 개발C#.Net 튜토리얼하위 대화 상자 생성 및 소멸

1. 표시 대화 상자

1.1 모달 대화 상자 표시:

CDialogDemo dlg;
dlg.DoModal();

1.2 모달리스 대화 상자 표시:

CDialogDemo *dlg=new CDialogDemo(this); 
dlg->Create(IDD_GENERAL_CONTROL); 
dlg->ShowWindow(SW_SHOW);

2. 🎜>

1.CDialog::OnOK(); //확인 버튼을 눌렀을 때 CDialog::OnCancel(); //취소 버튼을 눌렀을 때

2.CDialog::DestoryWindow(); >

3.CDialog::EndDialog( IDD );

3. 모달 대화 상자 클래스에서 자체 대화 상자를 닫습니다.

모달 대화 상자에서 닫을 수 있습니다. 클래스는 PostMessage(WM_CLOSE)를 사용하여 자체 대화 상자를 닫습니다. MessageBox 대화 상자를 닫으면 모달 대화 상자가 닫힙니다.


참조 코드는 다음과 같습니다.


4. 여러 관련 중요 기능에 대한 자세한 설명
<span style="font-size:18px;">BOOL CImportDataPromptDialog::OnInitDialog()
{
     CDialog::OnInitDialog();
 
    // TODO:  Add extra initialization here
     HANDLE hThread = StartImportDataThread();
     if (!hThread)
     {
         LOG("启动导入数据线程失败")
     }
 
     return TRUE;  // return TRUE unless you set the focus to a control
     // EXCEPTION: OCX Property Pages should return FALSE
}
 
DWORD WINAPI CImportDataPromptDialog::ImportDataThread(LPVOID Param)
 {
    CImportDataPromptDialog* importDlg = (CImportDataPromptDialog*)Param;
 
    if (CImportLog::ExtractionXMLData(importDlg->m_sXmlFilePath, importDlg->m_sDBPath))
     {
        importDlg->MessageBox("导入数据成功","平台", MB_ICONINFORMATION);
         importDlg->PostMessage(WM_CLOSE);
     }
    else
     {
         importDlg->MessageBox("导入数据失败","平台", MB_ICONEXCLAMATION);
         importDlg->PostMessage(WM_CLOSE);
     }
    
     return 0;
 }
 
 HANDLE CImportDataPromptDialog::StartImportDataThread()
 {
     LOG("启动导入数据线程");
     CWinThread* hThread = AfxBeginThread((AFX_THREADPROC)CImportDataPromptDialog::ImportDataThread,(LPVOID)this);
 
    return (hThread->m_hThread);
 }</span>

4.1 CloseWindow

함수 function: 이 함수는 지정된 창을 최소화하지만 창을 파괴하지는 않습니다.

함수 프로토타입: BOOL CloseWindow(HWND hWnd);


매개변수: hWnd: 최소화할 창의 핸들.

반환 값: 함수가 성공하면 반환 값은 0이 아닙니다. 함수가 실패하면 반환 값은 0입니다. 더 많은 오류 정보를 얻으려면 GetLastError 함수를 호출하세요.

참고: 창 크기가 아이콘으로 최소화되어 화면의 아이콘 영역으로 이동되었습니다. 시스템은 창을 표시하지 않고 창의 아이콘을 표시하며, 아이콘 아래에 창 제목을 표시합니다. 응용 프로그램은 창을 삭제하려면 DestroyWindow 함수를 사용해야 합니다.

4.2 DestroyWindow 

기능: 지정된 창을 파괴합니다. 이 함수는 WM_DESTROY 메시지와 WM_NCDESTROY 메시지를 전송하여 창을 무효화하고 키보드 포커스를 제거합니다. 이 함수는 또한 창 메뉴를 파괴하고, 스레드의 메시지 대기열을 지우고, 창 프로세스와 관련된 타이머를 파괴하고, 창의 클립보드 소유권을 해제하고, 클립보드 뷰어의 보기 체인을 중단합니다.

함수 프로토타입: BOOL DestroyWindow(HWND hWnd // 소멸할 창 핸들);

hWnd: 소멸할 창 핸들.
반환 값: 함수가 성공하면 반환 값은 0이 아닙니다. 함수가 실패하면 반환 값은 0입니다. 더 많은 오류 정보를 얻으려면 GetLastError 함수를 호출하세요.
참고: 스레드는 이 함수를 사용하여 다른 스레드가 만든 창을 삭제할 수 없습니다. 이 창이 WS_EX_NOPARENTNOTIFY 스타일이 없는 하위 창인 경우 창이 소멸될 때 WM_PARENTNOTIFY 메시지가 상위 창으로 전송됩니다. Windows CE: 이 함수는 WM_NCDESTROY 메시지를 보내지 않습니다.

4.3 EndDialog 

함수: 이 함수는 모달 대화 상자를 지우고 시스템이 대화 상자의 모든 처리를 종료하도록 합니다.

함수 프로토타입: BOOL EndDialog(HWND hDlg,int nResult);

매개변수: hDlg: 대화 상자 창을 지울 것을 나타냅니다. NResult: 대화 상자 만들기 기능에서 애플리케이션에 반환되는 값을 지정합니다.
반환 값: 함수 호출이 성공하면 반환 값은 0이 아닌 값이고, 함수 호출이 실패하면 반환 값은 0입니다. 오류 정보를 얻으려면 GetLastError 함수를 호출하세요.
참고: DialogBox, DialogBoxParam, DialogBoxlndirect 및 DialogBoxlndirectParam 함수로 생성된 대화 상자는 EndDialog 함수를 사용하여 지워야 합니다. 응용 프로그램은 대화 상자 응용 프로그램 내에서 EndDialog 함수를 호출하며 이 함수는 다른 목적으로 사용할 수 없습니다. 대화 상자 응용 프로그램은 WM_INITDIALOG 메시지 처리 중에도 언제든지 EndDialog 함수를 호출할 수 있습니다. 응용 프로그램이 WM_INTDIALOG 메시지 처리 중에 이 함수를 호출하면 표시 및 입력 포커스가 설정되기 전에 대화 상자가 지워집니다. EndDialog 함수는 대화 상자를 즉시 ​​지우지 않습니다. 대신, 플래그를 설정하고 대화 상자 응용 프로그램이 시스템에 제어권을 반환할 수 있도록 합니다. 시스템은 애플리케이션 큐에서 다음 메시지를 검색하기 전에 플래그를 감지합니다. 플래그가 설정된 경우 시스템은 메시지 루프를 종료하고 대화 상자를 지우고 nResUlt의 값을 대화 상자를 만든 함수에서 반환된 값으로 사용합니다.

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
C# 및 .NET 런타임 : 함께 작동하는 방법C# 및 .NET 런타임 : 함께 작동하는 방법Apr 19, 2025 am 12:04 AM

C# 및 .NET 런타임은 개발자가 효율적이고 강력하며 크로스 플랫폼 개발 기능을 강화하기 위해 긴밀히 협력합니다. 1) C#은 .NET 프레임 워크와 완벽하게 통합하도록 설계된 유형 안전 및 객체 지향 프로그래밍 언어입니다. 2) .NET 런타임은 C# 코드 실행을 관리하고, 쓰레기 수집, 유형 안전 및 기타 서비스를 제공하며, 효율적이고 크로스 플랫폼 운영을 보장합니다.

C# .NET 개발 : 시작에 대한 초보자 안내서C# .NET 개발 : 시작에 대한 초보자 안내서Apr 18, 2025 am 12:17 AM

C# .NET 개발을 시작하려면 다음과 같은 것이 필요합니다. 1. C#의 기본 지식과 .NET 프레임 워크의 핵심 개념을 이해하십시오. 2. 변수, 데이터 유형, 제어 구조, 기능 및 클래스의 기본 개념을 마스터하십시오. 3. LINQ 및 비동기 프로그래밍과 같은 C#의 고급 기능을 배우십시오. 4. 일반적인 오류에 대한 디버깅 기술 및 성능 최적화 방법에 익숙해 지십시오. 이러한 단계를 통해 C#.NET의 세계를 점차적으로 침투하고 효율적인 응용 프로그램을 작성할 수 있습니다.

C# 및 .NET : 둘 사이의 관계 이해C# 및 .NET : 둘 사이의 관계 이해Apr 17, 2025 am 12:07 AM

C#과 .NET의 관계는 분리 할 수 ​​없지만 같은 것은 아닙니다. C#은 프로그래밍 언어이며 .NET은 개발 플랫폼입니다. C#은 코드를 작성하고 .NET의 중간 언어 (IL)로 컴파일하고 .NET 런타임 (CLR)에 의해 실행되는 데 사용됩니다.

C# .NET의 지속적인 관련성 : 현재 사용법을 살펴보십시오.C# .NET의 지속적인 관련성 : 현재 사용법을 살펴보십시오.Apr 16, 2025 am 12:07 AM

C#.NET은 여러 응용 프로그램 개발을 지원하는 강력한 도구 및 라이브러리를 제공하기 때문에 여전히 중요합니다. 1) C#은 .NET 프레임 워크를 결합하여 개발 효율적이고 편리하게 만듭니다. 2) C#의 타입 안전 및 쓰레기 수집 메커니즘은 장점을 향상시킵니다. 3) .NET은 크로스 플랫폼 실행 환경과 풍부한 API를 제공하여 개발 유연성을 향상시킵니다.

웹에서 데스크톱으로 : C# .NET의 다양성웹에서 데스크톱으로 : C# .NET의 다양성Apr 15, 2025 am 12:07 AM

C#.NETISVERSATILEFORBOTHWEBBANDDESKTOPDEVENTROMMENT.1) FORWEB, useASP.NETFORRICHINTERFACES.3) FORDESKTOP.3) USEXAMARINFORCROSS-PLATFORMDEEVENTRIMMENT, LINABILEDEV, MACODEDEV, and MACODEDOWS, 및 MACODEDOWS.

C# .net 및 미래 : 신기술에 적응C# .net 및 미래 : 신기술에 적응Apr 14, 2025 am 12:06 AM

C# 및 .NET는 지속적인 업데이트 및 최적화를 통해 신흥 기술의 요구에 적응합니다. 1) C# 9.0 및 .NET5는 레코드 유형 및 성능 최적화를 소개합니다. 2) .NETCORE는 클라우드 네이티브 및 컨테이너화 된 지원을 향상시킵니다. 3) ASP.NETCORE는 최신 웹 기술과 통합됩니다. 4) ML.NET는 기계 학습 및 인공 지능을 지원합니다. 5) 비동기 프로그래밍 및 모범 사례는 성능을 향상시킵니다.

c# .net이 당신에게 적합합니까? 적용 가능성을 평가합니다c# .net이 당신에게 적합합니까? 적용 가능성을 평가합니다Apr 13, 2025 am 12:03 AM

C#.netissuitable forenterprise-levelapplications는 richlibraries, androbustperformance, 그러나 itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical, wherelanguagesslikerustorthightordogrordogrognegrognegrognegrognecross-platformdevelopmentor.

.NET 내의 C# 코드 : 프로그래밍 프로세스 탐색.NET 내의 C# 코드 : 프로그래밍 프로세스 탐색Apr 12, 2025 am 12:02 AM

.NET에서 C#의 프로그래밍 프로세스에는 다음 단계가 포함됩니다. 1) C# 코드 작성, 2) 중간 언어 (IL)로 컴파일하고 .NET 런타임 (CLR)에 의해 실행됩니다. .NET에서 C#의 장점은 현대적인 구문, 강력한 유형 시스템 및 .NET 프레임 워크와의 긴밀한 통합으로 데스크탑 응용 프로그램에서 웹 서비스에 이르기까지 다양한 개발 시나리오에 적합합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.