728x90
300x250
[MFC] 메시지 처리 - WM_Create, WM_LButtonDBLCLK, AfxMessageBox

 

메시지 처리에 대해서 두 가지 "메시지"를 바탕으로 구현해보도록 하겠다.

WM_Create라는 메시지는 "기존 처리기"에서의 함수 이름으로 OnCreate로 사용되고 있다.

OnCreate란, 윈도우 창이 생성되었을 때, 호출되는 메시지 처리를 말한다.

함수 원형으로 표현했을 때를 말한다.

WM_LButtonDBLCLK라는 메시지는 "기존 처리기"에서의 함수 이름으로 OnLButtonDblClk으로 사용되고 있다.

 

다음은 AfxMessage에 대한 것이다. 말 그대로 메시지 처리에서 상자를 만드는 것이다.

 

 

 

[사용 환경]
Microsoft Visual Studio 2019

Microsoft Windows 10

 


1. 프로젝트 생성하기

 

프로젝트 생성은 아래의 그림 단계처럼 진행할 수 있다.

 

 

그림 1) 프로젝트 생성하기

 

 

그림 2) 프로젝트 생성하기

 

 

 

그림 3) 프로젝트 생성하기

 

 

그림 4) 프로젝트 생성하기

 

 

 

그림 5) 프로젝트 생성하기

 

 

 

그림 6) 프로젝트 생성하기

 


2. 클래스 마법사로 (2가지)기능 생성하기

 

메시지 처리에 관한 기능을 생성할 것이다.

WM_Create와 WM_LButtonDblClick을 생성하여 코드를 입력해주겠다.

 

 

그림 7) 클래스 마법사에서 함수 원형 만들기

 

 

그림 8) 클래스 마법사에서 함수 원형 만들기

 

 

그림 9) 클래스 마법사에서 함수 원형 만들기

 

 

그림 10) 클래스 마법사에서 함수 원형 코드 입력하기

 

 

그림 11) 클래스 마법사에서 함수 원형 만들기

 

AfxMessage(_T("윈도우가 생성되었습니다."), MB_OKCANCEL | MB_ICONINFORMATION );

 

 

그림 11) 클래스 마법사에서 함수 원형 만들기

 

 

그림 12) 클래스 마법사에서 함수 원형에 코드 입력하기

 


3. 시연하기(Practice)

 

코드 입력 등이 완료가 되었다면, "Ctrl + F5키" 또는 "로컬 Windows 디버거"를 클릭하여 시연하면 된다.

 

 

그림 13) 시연하기

 

 

그림 14) 시연하기

 

반응형
728x90
300x250
[MFC] 도큐먼트(폼 뷰) - DDX에 관한 이야기

 

이전의 Visual Studio 2010, Visual Studio 2013, Visual Studio 2015에서는 아래처럼 따라하면, CFormView에서 변수를 생성할 수 있었다.

하지만, 최근 출시된 Visual Studio 2019에서는 달라진 점이 CFormView에서는 그냥 더블클릭 하나면 변수가 생성된다는 점이다.

이전의 주요 기능은 남아있으나 C#으로 진영이 넘어가는 것으로 보인다.

 

태스트 환경:
Microsoft Visual Studio 2019 Community
Microsoft Windows 10

 


1. 프로젝트 생성하기

 

새 프로젝트 만들기->MFC 앱을 클릭한다.

 

 

그림 1) 프로젝트 생성하기 (1단계)

 

 

 

그림 2) 프로젝트 생성하기 (2단계 - 프로젝트 이름 지정)

 

 

 

 

그림 3) 프로젝트 생성하기 (단일 문서)

 

 

그림 4) 프로젝트 생성하기 (단일 문서)

 

파일 확장명을 "txt"라고 입력 후 "다음"을 클릭한다.

 

 

그림 5) Command bar (menu/toolbar/ribbon)에서 메뉴 모음 및 도구 모음 사용을 클릭하기

 

 

그림 6) View 클래스 선택 후, 마침 누르기

 

FormView_ex에서 리소스 파일을 클릭 후 Formview_ex.rc를 더블 클릭한다.

 

 

그림 7) 완성된 프로젝트

 

 

그림 8) 완성된 프로젝트

 


2. CFormView 확인하기

 

초기에 생성된 CFormView의 모습이다.

IDD_FORMVIEW_EX_FORM의 Style은 Child로 지정한다.

 

 

그림 9) IDD_FORMVIEW_EX_FORM 스타일 설정의 예

 

IDD_FORMVIEW_EX_FORM 스타일을 Child가 아닌 Popup으로 변경할 경우, 오류가 발생한다.

 

임시로 Ctrl+F5를 눌러서 잘 동작하는지 확인을 해본다.

 

 

그림 10) 프로젝트가 동작하는 모습의 예

 

 


3. CFormView 꾸미기(실습)

 

FormViewex.rc의 IDD_FORMVIEW_EX_FORM (Dialog)를 아래처럼 컨트롤박스를 배치하여 꾸미도록 한다.

이전 버전(Visual Studio 2010, Visual Studio 2013, 2015, 2017)과 호환이 된다.

 

 

그림 11) 디자인 모습

 

그림 11처럼 도구 상자에 있는 컨트롤을 배치하도록 한다.

 

 

 

그림 12) ID 이름 변경하기

 

 

 

그림 13) IDC_EDIT_BLUE (Edit Control)의 Number 옵션 변경하기

 

그림 13처럼 Number 옵션을 True로 변경하면 항상 숫자만 입력할 수 밖에 없도록 된다.

 

 

 

그림 14) Caption 변경하는 모습

 


4. 충돌 오류 발생 - "변수 추가(B)..."

 

Visual Studio 2017, Visual Studio 2019부터 CFormView에서 변수 추가(B)로 컨트롤에 변수를 주는 것이 금지되었다.

"DoDataExchange 메서드를 업데이트할 수 없습니다."라는 오류를 발생시킨다.

 

 

그림 15) 변수 추가(B)의 모습

 

 

그림 16) 변수명을 이전 스타일(Visual Studio 2015)로 입력하는 모습의 예

 

범주(T)를 "값"으로 설정하고 이전 스타일로 입력을 하였다.

이전 버전에서는 동작할 수도 있겠으나 최신 버전(Visual Studio 2017, 2019)에서는 동작하지 않는다.

 

"DoDataExchanage 메서드를 업데이트할 수 없습니다." 라는 오류를 접하게 된다.

아래의 그림들도 마찬가지이다.

 

 

그림 17) 변수명을 이전 스타일(Visual Studio 2015)로 입력하는 모습의 예

 

 

그림 18) 변수명을 이전 스타일(Visual Studio 2015)로 입력하는 모습의 예

 


5. 다이얼 로그에서만 사용가능

 

마이크로소프트 공식 사이트에서 "대화 상자 작업"이라는 주제에 대해서 찾아보았다.

해당 관련 자료를 찾아볼 수 있었다.

https://docs.microsoft.com/ko-kr/cpp/mfc/life-cycle-of-a-dialog-box?view=vs-2019

https://docs.microsoft.com/ko-kr/cpp/mfc/dialog-data-exchange?view=vs-2019

 

그림 19) MFC 공식 메뉴얼 - 마이크로소프트

 

 

그림 20) 대화 상자 데이터 교환 - 마이크로소프트

원리, 이론적으로는 가능해보이나 Visual Studio 2019부터는 훨씬 엄격해진 것 같다.

 


결론(Conclusion)

 

CFormView에서는 DDX 메커니즘은 동작하지 않는다.

 

[첨부(Attachment)]

FormView_ex1.zip

반응형
728x90
300x250

[JSP] 7. JSP, Servlet(JDBC) 프로그래밍

 

간결하고 쉽게 작성해보았다.

일반 게시판에서 사용되는 페이징 기법은 제거하고 JSP, Servlet(서블릿) 사용 방법에 대해서 소개한다.

(I tried to write concise and easy.)

(Removes the paging technique used in general bulletin board and introduces how to use JSP, Servlet.)

 

 

* Apache Tomcat-9.0.27
* Microsoft Windows 10
* MariaDB 10.4

 


1. 아파치 톰캣 실행하기

 

톰캣을 실행한다. startup.bat 배치 파일을 실행하면 된다.

(Run Tomcat. Just run the startup.bat batch file.)

 

 

Figure 1) Tomcat folder

그림 1) 톰캣 폴더의 모습

 

 

Figure 2) Tomcat external library folder

그림 2) 톰캣 외부 라이브러리 폴더

 

"C:\apache-tomcat-9.0.27\lib"는 tomcat의 서블릿, DBCP, Catalina 등이 담겨져 있는 라이브러리 폴더이다.

("C:\apache-tomcat-9.0.27\lib" is a library folder containing tomcat's servlets, DBCP, Catalina, and so on.)

 

 

Figure 3) Tomcat run

그림 3) 톰캣 실행의 모습

 


2. 이클립스의 모습(Eclipse)

 

이클립스 웹 작업에 있어서 가장 중요한 것은 아무래도 환경설정을 꼽겠다.

(Perhaps the most important thing when working with Eclipse web is configuration.)

 

 

Figure 4) Programming work in Eclipse

그림 4) 이클립스에서의 프로그래밍 작업 모습

 

 

 

Figure 5) Adding "MariaDB-Java-client-2.4.4.jar" and "Tomcat Jars" to Libraries tab in Java Build Path

그림 5) Java Build Path에 Libraries 탭에 "MariaDB-Java-client-2.4.4.jar", "Tomcat Jars" 추가 모습

 

[첨부(Attachment)]

mariadb-java-client-2.4.4.jar

 

초기 작업할 수 있도록 프로젝트 파일도 첨부해서 올려놓도록 하겠다.

(We will also attach a project file for the initial work.)

 

[첨부(Attachment)]

Stone.z01

Stone.z02

Stone.z03

Stone.zip

 


3. HeidiSQL 10.2.0.5599에서 게시판 DB 설계하기(Designing board DB in HeidiSQL 10.2.0.5599)

 

예제에 사용한 게시판 DB 설계를 하였다.

가볍게 따라서 작성하면 될 것이다.

(Designed bulletin board DB used in the example.)

(Simply follow along.)

 

 

Figure 6) "board_list" Board Design Example

그림 6) "board_list" 게시판 설계의 예

 


4. 프론트엔드에서 사용자 접속의 예(Example of User Connections at the Front End)

 

아래의 그림은 프론트엔드에서의 웹 사이트이다.(The figure below shows a Web site at the front end.)

http://localhost:8080/Stone/Board/list.jsp

http://localhost:8080/Stone/Board/write.jsp

 

Figure 7) Example of list.jsp

그림 7) list.jsp의 예

 

 

Figure 8) Example of write.jsp

그림 8) write.jsp의 예

반응형
728x90
300x250
[Sun Sys - Java] 자바 - Jar 파일 실행하기(윈도우, 리눅스)

 

자바 Jar 파일을 윈도우, 리눅스에서 실행하는 방법이다.

 

윈도우: javaw -jar client.jar

리눅스: java -jar client.jar

 

 

반응형
728x90
300x250
[JSP] 6. Apache Tomcat 9 기반으로 한 Eclipse에서 Servlet 사용하기(Using servlets in Eclipse based on Apache Tomcat 9)

 

Apache Tomcat 9와 Eclipse Java 2019-09를 활용한 Dynamic Web Project를 하나 진행하도록 하겠다.

해당 예제는 톰캣에 탑재되어 있는 기본 예제로 진행하였다.

(The Apache Tomcat 9 and the Eclipse Java 2019-09 A Dynamic Web Project will utilize the proceeds to one.

This example is a basic example of Tomcat.)

 


1. 실습 환경(Environmental Practice)

 

1. MS윈도우 10 1909(MS Windows 10 1909)

2. Apache Tomcat 9

3. Eclipse Java 2019-09

4. OpenJDK 13

 


2. 프로젝트 생성하기(Create a project)

 

프로젝트를 아래의 그림처럼 생성한다.(Create a project as shown below.)

 

 

 


3. Servlet 생성하기

 

서블랫에 대해서는 다음에 소개하도록 하겠다.

(I'll introduce you to the Servlet later.)

 

 

Java Resources 탭에서 src 폴더를 오른쪽 버튼을 클릭한다.

(Right-click the src folder on the Java Resources tab.)

 

 

그리고 New-> Servlet을 클릭한다.

(Then click New-> Servlet.)

 

 

 

 

 

 

 

 


4. Apache Tomcat 9의 Servlet API 찾기(Finding the Servlet API for Apache Tomcat 9)

 

서블랫의 경로는 아래의 그림처럼 존재한다.

C:\{Apache 설치경로}\lib\servlet-api.jar

(The servlet's path exists as shown below.

C:\{Apache installation path}\lib\servlet-api.jar)

 

 

 


5. 이클립스에 적용하기(Apply to Eclipse)

 

이클립스에 적용하는 방법이다. {프로젝트명} 폴더를 클릭 후 오른쪽 버튼을 클릭한다.

그리고 "Properties"를 클릭한다.

(This is how you apply it to Eclipse.

Right click on the {Project Name} folder.Then click "Properties".)

 

 

 

 

 


6. 소스코드 구현하기(Implement the source code)

 

소스코드를 작성해주면 된다.(Write the source code.)

 

 


7. 디버그 및 태스트하기

 

Eclipse Java 2019-09부터는 Server에 Apache Tomcat이 사라졌다.

(Starting with Eclipse Java 2019-09, Apache Tomcat disappeared from Server.)

 

 


7-1. WAS에 WAR 배포하기

 

WAS(이하 "Web Application Server")에 방금 작성한 자바 프로젝트를 배포하는 방법이다.

(How to deploy a Java project you just created to WAS ("Web Application Server").)

 

 

File->Export를 클릭한다.(Click File-> Export.)

 

 

 

 

배포 위치는 c:\apache-tomcat-***\webapps에 넣어주면 된다.

(The distribution location is in "c:\apache-tomcat-***\webapps.")

 

 


8. 웹 사이트 접속해보기(Go to the website)

 

웹 사이트에 접속하면 확인해볼 수 있다.(You can check it by visiting the website.)

 

반응형
728x90
300x250
[JSP] 5. Apache Tomcat 9 윈도우 10에서 수동으로 설치하기(Manually installing in Apache Tomcat 9 window)

 

MS윈도우 환경에서 아파치 톰캣 9를 설치하는 방법에 대해서 소개합니다.

(Here's how to install Apache Tomcat 9 in an MS Windows environment.)

 


1. 아파치 톰캣 공식 사이트에 접속하기(Access the Apache Tomcat official site)

 

https://tomcat.apache.org/download-90.cgi에서 다운 받을 수 있습니다.

"You can download it from `https://tomcat.apache.org/download-90.cgi.`"

 

그림 1) Apache 톰캣 공식 웹 사이트(Apache Tomcat official website)

 


2. 다운받은 파일 압축 풀기(Extract the downloaded file)

 

다운받은 파일을 압축 풉니다.(Unzip the downloaded file.)

 

 

그림 2) 다운받은 파일 압축 풀기

Figure 2) Extract the downloaded file

 

 

Figure 3) Extract the downloaded file

 

 

Figure 4) Extract the downloaded file

 


3. 압축 푼 폴더 C:\로 이동하기(Go to the extracted folder C:\)

 

압축 푼 폴더를 "잘라내기", "붙여넣기"로 이동시켜줍니다.

(Move the extracted folder to "Cut" or "Paste".)

 

 

그림 5) 복사 붙여넣기가 완료된 아파치 톰캣 폴더

Figure 5) Apache Tomcat folder with copy paste complete

 


4. 서버 실행하기(Run the server)

 

"c:\apache-tomcat.xxx\bin"에서 "startup.bat"을 더블클릭합니다.

(Double click "startup.bat" in "c:\ apache-tomcat.xxx\bin".)

 

 

그림 6) 서버 실행파일이 존재하는 위치

Figure 6) Location of Server Executables

 

 

그림 7) OpenJDK 또는 JDK 액세스 허용을 클릭하기 전의 모습

Figure 7) Before clicking OpenJDK or Allow JDK access

 


5. 아파치 톰캣 사이트(localhost) [Apache Tomcat site (localhost)]

 

http://127.0.0.1:8080 또는 http://localhost:8080에 접속하면 아래의 화면을 볼 수 있습니다.
(If you access http://127.0.0.1:8080 or http://localhost:8080, you will see the following screen.)

 

그림 8) 아파치 톰캣 처음화면

Figure 8) Apache Tomcat Home

 

 

그림 9) 아파치 톰캣에 사용되는 JSP, Servlet 예제 사이트

Figure 9) JSP, Servlet example site used by Apache Tomcat

 

반응형
728x90
300x250

[MS C++(MFC)] SDI(단일 문서)에서 자녀 다이얼로그(Child dialog in single document interface (SDI)


MFC의 SDI를 다루는 방법 중 자녀 다이얼로그 제어에 대해서 소개합니다.
(This section introduces the child dialog control method of handling MDI's SDI.)

작성 환경은 Visual Studio 2019, Windows 10 1909에서 진행하였습니다.
(The authoring environment was in Visual Studio 2019, Windows 10 1909.)

 


1. MFC 프로젝트 생성하기(Creating an MFC Project)

 

"단일 문서"를 선택하고 아래의 그림처럼 설정합니다.
(Select "Single Document" and set it as shown below.)

 

다음을 누릅니다.(Click Next.)

 

 

다음을 누릅니다.(Click Next.)

 

 

다음을 누릅니다.(Click Next.)

 

 

"체크 박스"를 위의 그림처럼 해줍니다.(Do a "check box" as shown above.)

 

 

마침을 클릭합니다.(Click Finish.)

"로컬 Windows 디버거" 또는 "Ctrl + F5키"를 누르면 아래의 창이 뜹니다.
(Press "Local Windows Debugger" or "Ctrl + F5" to bring up the window below.)

 

 


2. MFCFormView.rc에서 다이얼로그 생성하기(Creating a dialog in MFCFormView.rc)

 

다이얼로그를 하나 생성합니다. (Create one dialog.)

 

 

다이얼 로그를 생성하면 아래의 그림처럼 생성됩니다.(When you create a dial log, it is created as shown below.)

 

 

그리고 다이얼 로그를 오른쪽 버튼 한 후, 클래스 추가를 클릭합니다.
(Then right-click on the dialog and click Add Class.)

 

 

Dlg1으로 해도 상관없지만, 기존 이름에 C만 더 붙여서 CDlg로 클래스 이름을 지정해주는 것도 하나의 방법입니다.
(Dlg1 can be used, but it is also a way to specify the class name as CDlg by adding C to the existing name.)

 

예제에서는 편의상 Dlg1으로 하였습니다.(In this example, we have used Dlg1 for convenience.)

 


3. 메뉴에 다이얼로그 커맨드 기능 추가하기(Adding dialog command functions to the menu)

 

메뉴에 다이얼로그 커맨드 기능을 추가하겠습니다.(We will add a dialog command function to the menu.)

 

 

"예"라는 항목에 ID에 "ID_TOOLS_EX"로 지정하였습니다.(You have assigned "ID_TOOLS_EX" to the ID of "Yes".)

 

 

오른쪽 버튼을 클릭 후 "이벤트 처리기 추가(A)..."를 클릭합니다.
(Right click and click "Add Event Handler ...")

 

 

그림처럼 설정이 되어있을 것입니다. 확인을 클릭합니다. (It will be set as shown. Click OK.)

 


4. 코드 작성(Write the code)

 

코드 작성은 크게 어렵지 않게 진행할 수 있습니다.(Writing code can be very easy.)

 

 

그림에서는 CDlg.h로 되어있는데, 앞에 설명은 Dlg.h로 설명한 것처럼 보일 수 있습니다.

앞에서 지정한 헤더명으로 입력해주시면 됩니다.

Inteligence 기능으로 헤더를 찾아주기 때문에 적절히 잘 지정해주면 될 것 같습니다.

 

(In the figure, it is called CDlg.h, which may look like the one described as Dlg.h.

Enter the header name you specified earlier.

The Inteligence function finds the header, so I think it should be properly specified.)

 

 

 

반응형
728x90
300x250
[MS C++(MFC)] Visual C++ 샘플 사이트 소개 및 백업 안내

 

소개하고자 하는 사이트는 Microsoft에서 공식적으로 배포하고 있는 Visual C++ 샘플에 관한 페이지이다.

(The site I want to introduce is a page about the Visual C ++ samples that are officially distributed by Microsoft.)

https://docs.microsoft.com/ko-kr/cpp/overview/visual-cpp-samples?view=vs-2019

 

 

 

그림 1) MS Doc 공식 홈페이지

 

MFC 샘플 페이지를 보면, MSDN 코드 갤러리라는 페이지가 사용 중지될 예정이라고 코드를 백업하라는 메시지가 출력되어 있다.

Visual Studio 2019에서 C++ MFC를 사용해보면, 리소스(Resource) 부분에서 오류가 발생해서 튕기는 경우가 자주 발생한다.

(In the MFC sample page, you are prompted to back up your code that the page called MSDN Code Gallery will be deprecated.

When using C ++ MFC in Visual Studio 2019, you'll often see errors and bounces in the Resource section.)

 

 

그림 2) MSDN 홈페이지

 

반응형

+ Recent posts