Editbox 설정

Programming/Windows Programming 2009. 9. 26. 23:51
Editbox 에 text를 여러 줄에 출력되도록 하려면 설정을 해줘야된다.

Multiline 속성 : TRUE - Editbox 에 여러 줄이 출력 가능하다.
Want Return 속성 : TRUE - Editbox 에서 엔터를 칠 경우 다음 줄로 내려간다.
Auto HScroll 속성 : FALSE - Editbox 에 출력을 하거나 키보드로 입력을 할 때, 가로 방향으로 입력이 창 크기가 넘을 경우, 자동으로 아래줄에 글씨가 써진다. 횡축으로 스크롤이 자동으로 되는 것을 막았기 때문에 아래로 자연스레 커서가 내려오는 것이다.

Auto VScroll 속성은 바꿔도 똑같은거 같은데 ... 뭐하는지 모르겠다... -0- 뭐에 쓰는 옵션일꼬...

'Programming > Windows Programming' 카테고리의 다른 글

컨트롤 변수 사용( Value )  (0) 2009.09.22
라디오 버튼 그룹지정 하기  (0) 2009.08.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] Bitmap Object  (0) 2009.06.07

설정

트랙백

댓글

컨트롤 변수 사용( Value )

Programming/Windows Programming 2009. 9. 22. 00:33
UpdateData( TRUE );

현재 사용자가 입력한 컨트롤 리소스의 값들을 컨트롤 변수들에 대입한다.
ex ) 라디오 버튼의 경우 m_rdb1 컨트롤 이 선택 되어 있으면 m_rdb1 값이 0
       선택되어 있지 않으면 값이 1 이다.

UpdateData( FALSE );

컨트롤 변수에 대입된 값들을 컨트롤 리소스로 출력한다.

'Programming > Windows Programming' 카테고리의 다른 글

Editbox 설정  (0) 2009.09.26
라디오 버튼 그룹지정 하기  (0) 2009.08.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] Bitmap Object  (0) 2009.06.07

설정

트랙백

댓글

라디오 버튼 그룹지정 하기

Programming/Windows Programming 2009. 8. 22. 01:05

라디오버튼 컨트롤을 선택한 상태에서 속성창을 보면 Group 설정하는게 있다

true 나 false 둘 중 하나를 선택 할 수 있다. 3개 2개 의 라디오 버튼을 각각 그룹화 한다고 해보자.

이 때 각 그룹의 첫 번째 라디오버튼의 속성에 있는 Group 를 true 로 설정해주면 라디오버트 ID값을

기준으로 처음 true 속성을 가진 라디오버튼 부터 다음 true를 가진 라디오 버튼이 나올때 까지 사이

의 ID값을 기준으로 그룹을 나눈다.

// 그룹1
radio1    true
radio2    false
radio3    false

// 그룹2
radio4    true
radio5    false

'Programming > Windows Programming' 카테고리의 다른 글

Editbox 설정  (0) 2009.09.26
컨트롤 변수 사용( Value )  (0) 2009.09.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] Bitmap Object  (0) 2009.06.07

설정

트랙백

댓글

IP HELP API 설정하기

Programming/Windows Programming 2009. 8. 22. 00:30

먼저 #include <iphlpapi.h> 해준다.

그리고 include file directory 에는 C:\PROGRAM FILES (X86)\MICROSOFT SDKS\WINDOWS\V5.0\INCLUDE 와 같이 X86 계열 폴더로 명시해준다.

lib directory 에는 C:\PROGRAM FILES\MICROSOFT SDKS\WINDOWS\V6.0A\LIB
으로 x86이 아닌 폴더로 명시

개발 환경 : Windows 7

아마 윈도우 7 64비트용 운영체제 때문에 계열을 신경써서 인클루드를 해야하는 것 같다.
그렇지 않으면 신경쓰지 않고, include와  lib 폴더만 잘 명시해주면 될 것 같다.

'Programming > Windows Programming' 카테고리의 다른 글

컨트롤 변수 사용( Value )  (0) 2009.09.22
라디오 버튼 그룹지정 하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] Bitmap Object  (0) 2009.06.07
[MFC] GDI( Graphics Device Interface )  (0) 2009.06.07

설정

트랙백

댓글

[MFC] 더블 버퍼링

Programming/Windows Programming 2009. 6. 22. 02:29

더블 버퍼링은 그릴 때 깜박임 없이 최대한 부드럽게 표현하기 위한 것입니다.
이를 위해서 화면 DC에 직접 그려주게 되면 화면에 그려주는 과정이 드러나면서 화면이 깜박거릴수 있습니다. 그래서 Memory DC를 생성하여 메모리 비트맵을 선택 또는 Text를 출력합니다. 그리고 화면 DC로 이 Memory DC를 전송만 하면 부드럽게 화면이 출력이 됩니다.

1. 그리기에 필요한 각 Memory DC 와 비트맵 파일을 선언

CDC m_BkMemDC;
CBitmap m_BkBit;
CBitmap* m_OldBkBit;
BITMAP m_bm;

2. 비트맵 이미지 로드

this->m_BkBit.LoadBitmap( IDB_BG1 ); // Bitmap 읽기
this->m_BkBit.GetBitmap( &this->m_bm ); // 이미지의 크기 얻기

3. Paint 함수에서 그리기 - 1

CClientDC* pClientDC = new CClientDC( this );
CRect rect;
GetClientRect(&rect);
  
this->m_BkMemDC.CreateCompatibleDC( pClientDC ); // pClientDC 와 호횐되는 메모리 DC 생성
// Mem DC에서 Bitmap 오브젝트를 선택(설정)
this->m_OldBkBit = (CBitmap*)this->m_BkMemDC.SelectObject( &(this->m_BkBit) ); 

this->m_BkMemDC.SetBkColor( RGB( 0, 0, 0 ) );
this->m_BkMemDC.SetTextColor( RGB( 255, 255, 255 ) );
this->m_BkMemDC.TextOut( rect.left, 30, str );

  
4. Paint 함수에서 그리기 - 2

pClientDC->BitBlt( 0, 0, this->m_bm.bmWidth, this->m_bm.bmHeight, &(this->m_BkMemDC), 0,0, SRCCOPY );

this->m_BkMemDC.SelectObject( this->m_OldBkBit ); // DC 복원
this->m_BkMemDC.DeleteDC();

ReleaseDC( pClientDC );

'Programming > Windows Programming' 카테고리의 다른 글

라디오 버튼 그룹지정 하기  (0) 2009.08.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] Bitmap Object  (0) 2009.06.07
[MFC] GDI( Graphics Device Interface )  (0) 2009.06.07
[MFC] FileOpen  (0) 2009.06.04

설정

트랙백

댓글

[MFC] Bitmap Object

In GDI, Funcs are not supported about JPG, GIF. However, Funcs are supported about JPG, GIF in GDI++. There are tow kinds of Bitmap, DDB( Device Dependent Bitmap ) and DIB( Device Independent Bitmap ). It is able to paint as ever, regardless of OS( Operating System ) because DIB contains much Info about Bitmap. Just use DIB, when u create Bitmap file.

'Programming > Windows Programming' 카테고리의 다른 글

라디오 버튼 그룹지정 하기  (0) 2009.08.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] GDI( Graphics Device Interface )  (0) 2009.06.07
[MFC] FileOpen  (0) 2009.06.04

설정

트랙백

댓글

[MFC] GDI( Graphics Device Interface )

DC( Device Context )
GDI is supported by Windows OS to process the problem from compatibility with new Graphic Cards. If u use GDI, u don't need to care about a kind of devices.
Create DC to choose a device which u r going to use. After creating DC, GDI returns the handler of the DC. Then, u are able to use the device via the handler. U must release DC, after using the DC. Or else, Memory Leak occurs.

MFC DC( Device Context )
The below illustration is MFC Class Table.

CObject--
              |-- CDC
                 |-- CClientDC
                 |-- CMetaFileDC
                 |-- CPaintDC
                 |-- CWindowDC

1) CDC Class
CDC Class is the base class of other DC classes. In MFC Application, CWnd::GetDC Func returns CDC class pointer. After painting via the CDC pointer, u must release the DC using CWnd::ReleaseDC Func.

2) CWindowDC Class
It's for the entire region of Window. It contains Caption Bar, Menu Bar, Tool Bar, State Bar and so on... ,and besides Client region, that is, the entire region of Window.
GetWindowDC Func returns DC and ReleaseDC Func releases DC.

3) CClientDC Class
It's for client region in a Window. ClientDC Func returns DC and ReleaseDC FUnc releases DC or U could use delete with the pointer for DC.
ex ) CClientDC* pClientDC = new CClientDC( this );
       delete pClientDC;

4) CPaintDC Class
It's used in OnPaint Member Func which is WM_PAINT Message handler Func, when a window is being redrawed by WM_PAINT message. CPaintDC dc(this)  Func gets a pointer of Paint DC.

5) CMetaFileDC Class
It manages DC which are related with MetaFile( WMF, EMF ). MetaFile is a file of a group of GDI commands.

'Programming > Windows Programming' 카테고리의 다른 글

라디오 버튼 그룹지정 하기  (0) 2009.08.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] Bitmap Object  (0) 2009.06.07
[MFC] FileOpen  (0) 2009.06.04

설정

트랙백

댓글

[MFC] FileOpen

1. 이 두 파일을 프로젝트에 추가한다. "MyFileDialog.cpp", "MyFileDialog.h"

2. 파일 열기 때 사용할 다이얼로그를 하나 만들고 옵션을 수정한다.
    -> Clip Siblings : True, Style : Child, Control : True, System Menu : False
   그리고, 창의 길이를 옆으로 늘인다( 실제 파일 오픈 할 때 열리는 다이얼로그 보다 크게... 그렇지 않으면 이 다이얼로그의 테두리가 파일 열기 다이얼로그에 보이게 된다).

3. 리소스에 메뉴를 추가하고, 이벤트 핸들러를 추가한다.
    -> Message Type : COMMAND,  Function Handler Name : OnFileOpen, Class List : 이벤트 핸들러를 추가할 다이얼로그.( A Dialog )

4. A Dialog 의 옵션에 있는 Menu 에 이 새로 만든 Menu를 등록시킨다.

5. 메뉴 이벤트 핸들러에 아래의 소스를 붙여 넣고 수정하여 사용한다.

멀티바이트 용

char szFilter[] = "Text File|*.txt|All Files (*.*)|*.*||";
 CMyFileDialog Dlg( TRUE, "txt", NULL, NULL, szFilter );
 Dlg.m_ofn.lpstrTitle = "KnapsackProblem : Open File";
 if( Dlg.DoModal() == IDOK )
 {
 
 }

유니코드 용
CString szFilter = _T( "HTML 파일|*.htm|All Files (*.*)|*.*||" );
 CMyFileDialog Dlg( TRUE, (LPCTSTR)("txt"), NULL, NULL, szFilter );
 Dlg.m_ofn.lpstrTitle = _T("파일 열기");
 if( Dlg.DoModal() == IDOK )
 {

'Programming > Windows Programming' 카테고리의 다른 글

라디오 버튼 그룹지정 하기  (0) 2009.08.22
IP HELP API 설정하기  (0) 2009.08.22
[MFC] 더블 버퍼링  (0) 2009.06.22
[MFC] Bitmap Object  (0) 2009.06.07
[MFC] GDI( Graphics Device Interface )  (0) 2009.06.07

설정

트랙백

댓글