Skip to content

Commit 01b4f58

Browse files
committed
files for GUI(MFC)
1 parent e19197f commit 01b4f58

File tree

10 files changed

+639
-0
lines changed

10 files changed

+639
-0
lines changed

LogIn.cpp

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// LogIn.cpp: 구현 파일
2+
//
3+
4+
#include "stdafx.h"
5+
#include "WM.h"
6+
#include "LogIn.h"
7+
#include "afxdialogex.h"
8+
9+
#include "QRmain.h"
10+
11+
12+
// LogIn 대화 상자
13+
14+
IMPLEMENT_DYNAMIC(LogIn, CDialogEx)
15+
16+
LogIn::LogIn(CWnd* pParent /*=nullptr*/)
17+
: CDialogEx(IDD_LoginDlg, pParent)
18+
{
19+
20+
}
21+
22+
LogIn::~LogIn()
23+
{
24+
}
25+
26+
void LogIn::DoDataExchange(CDataExchange* pDX)
27+
{
28+
CDialogEx::DoDataExchange(pDX);
29+
DDX_Control(pDX, IDC_EDIT1, ID);
30+
}
31+
32+
33+
BEGIN_MESSAGE_MAP(LogIn, CDialogEx)
34+
ON_BN_CLICKED(IDC_BUTTON1, &LogIn::OnBnClickedLog)
35+
ON_WM_PAINT()
36+
END_MESSAGE_MAP()
37+
38+
void LogIn::OnBnClickedLog()
39+
{
40+
CString data; // m_Editln에 입력되는 문자열 저장하기 위한 CString변수
41+
42+
CString tmpStr = _T("");
43+
int v;
44+
45+
// edit Control에 입력되는 문자열을 CString에 대입
46+
ID.GetWindowTextW(data);
47+
48+
QrImg = doBasicDemo(data); // Qrcode Image
49+
50+
OnOK();
51+
}
52+
53+
54+
BOOL LogIn::PreTranslateMessage(MSG* pMsg)
55+
{
56+
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
57+
if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
58+
{
59+
OnBnClickedLog();
60+
return true;
61+
}
62+
return CDialogEx::PreTranslateMessage(pMsg);
63+
}

LogIn.h

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#pragma once
2+
3+
4+
// LogIn 대화 상자
5+
#include <opencv2/core.hpp>
6+
#include <opencv2/videoio.hpp>
7+
#include <opencv2/highgui.hpp>
8+
#include <opencv2/opencv.hpp>
9+
10+
using namespace cv;
11+
12+
class LogIn : public CDialogEx
13+
{
14+
DECLARE_DYNAMIC(LogIn)
15+
16+
public:
17+
LogIn(CWnd* pParent = nullptr); // 표준 생성자입니다.
18+
virtual ~LogIn();
19+
20+
// 대화 상자 데이터입니다.
21+
#ifdef AFX_DESIGN_TIME
22+
enum { IDD = IDD_LoginDlg };
23+
#endif
24+
25+
protected:
26+
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
27+
28+
DECLARE_MESSAGE_MAP()
29+
public:
30+
31+
Mat QrImg; //Qrcode
32+
CEdit ID; //Input data
33+
afx_msg void OnBnClickedLog();
34+
35+
virtual BOOL PreTranslateMessage(MSG* pMsg); //Enter key
36+
};

WM.cpp

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
2+
// WM.cpp: 응용 프로그램에 대한 클래스 동작을 정의합니다.
3+
//
4+
5+
#include "stdafx.h"
6+
#include "WM.h"
7+
#include "WMDlg.h"
8+
9+
#ifdef _DEBUG
10+
#define new DEBUG_NEW
11+
#endif
12+
13+
14+
// CWMApp
15+
16+
BEGIN_MESSAGE_MAP(CWMApp, CWinApp)
17+
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
18+
END_MESSAGE_MAP()
19+
20+
21+
// CWMApp 생성
22+
23+
CWMApp::CWMApp()
24+
{
25+
// 다시 시작 관리자 지원
26+
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
27+
28+
// TODO: 여기에 생성 코드를 추가합니다.
29+
// InitInstance에 모든 중요한 초기화 작업을 배치합니다.
30+
}
31+
32+
33+
// 유일한 CWMApp 개체입니다.
34+
35+
CWMApp theApp;
36+
37+
38+
// CWMApp 초기화
39+
40+
BOOL CWMApp::InitInstance()
41+
{
42+
// 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을
43+
// 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다.
44+
// InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다.
45+
INITCOMMONCONTROLSEX InitCtrls;
46+
InitCtrls.dwSize = sizeof(InitCtrls);
47+
// 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록
48+
// 이 항목을 설정하십시오.
49+
InitCtrls.dwICC = ICC_WIN95_CLASSES;
50+
InitCommonControlsEx(&InitCtrls);
51+
52+
CWinApp::InitInstance();
53+
54+
55+
AfxEnableControlContainer();
56+
57+
// 대화 상자에 셸 트리 뷰 또는
58+
// 셸 목록 뷰 컨트롤이 포함되어 있는 경우 셸 관리자를 만듭니다.
59+
CShellManager *pShellManager = new CShellManager;
60+
61+
// MFC 컨트롤의 테마를 사용하기 위해 "Windows 원형" 비주얼 관리자 활성화
62+
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
63+
64+
// 표준 초기화
65+
// 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면
66+
// 아래에서 필요 없는 특정 초기화
67+
// 루틴을 제거해야 합니다.
68+
// 해당 설정이 저장된 레지스트리 키를 변경하십시오.
69+
// TODO: 이 문자열을 회사 또는 조직의 이름과 같은
70+
// 적절한 내용으로 수정해야 합니다.
71+
SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성된 응용 프로그램"));
72+
73+
CWMDlg dlg;
74+
m_pMainWnd = &dlg;
75+
INT_PTR nResponse = dlg.DoModal();
76+
if (nResponse == IDOK)
77+
{
78+
// TODO: 여기에 [확인]을 클릭하여 대화 상자가 없어질 때 처리할
79+
// 코드를 배치합니다.
80+
}
81+
else if (nResponse == IDCANCEL)
82+
{
83+
// TODO: 여기에 [취소]를 클릭하여 대화 상자가 없어질 때 처리할
84+
// 코드를 배치합니다.
85+
}
86+
else if (nResponse == -1)
87+
{
88+
TRACE(traceAppMsg, 0, "경고: 대화 상자를 만들지 못했으므로 응용 프로그램이 예기치 않게 종료됩니다.\n");
89+
TRACE(traceAppMsg, 0, "경고: 대화 상자에서 MFC 컨트롤을 사용하는 경우 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS를 수행할 수 없습니다.\n");
90+
}
91+
92+
// 위에서 만든 셸 관리자를 삭제합니다.
93+
if (pShellManager != nullptr)
94+
{
95+
delete pShellManager;
96+
}
97+
98+
#if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS)
99+
ControlBarCleanUp();
100+
#endif
101+
102+
// 대화 상자가 닫혔으므로 응용 프로그램의 메시지 펌프를 시작하지 않고 응용 프로그램을 끝낼 수 있도록 FALSE를
103+
// 반환합니다.
104+
return FALSE;
105+
}
106+

WM.h

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
// WM.h: PROJECT_NAME 응용 프로그램에 대한 주 헤더 파일입니다.
3+
//
4+
5+
#pragma once
6+
7+
#ifndef __AFXWIN_H__
8+
#error "PCH에 대해 이 파일을 포함하기 전에 'stdafx.h'를 포함합니다."
9+
#endif
10+
11+
#include "resource.h" // 주 기호입니다.
12+
13+
14+
// CWMApp:
15+
// 이 클래스의 구현에 대해서는 WM.cpp을(를) 참조하세요.
16+
//
17+
18+
class CWMApp : public CWinApp
19+
{
20+
public:
21+
CWMApp();
22+
23+
// 재정의입니다.
24+
public:
25+
virtual BOOL InitInstance();
26+
27+
// 구현입니다.
28+
29+
DECLARE_MESSAGE_MAP()
30+
};
31+
32+
extern CWMApp theApp;

0 commit comments

Comments
 (0)