Visual Studio 2008 Express 를 얻을 수 있고 관련 정보를 얻을 수 있는 공식사이트입니다.

정식판과 Express 의 차이점은 Express는 기본적인 컴파일러만 포함되어있고
기본적으로 MFC , ATL 라이브러리가 지원 되고 안되고의 차이라고 합니다.

Visual Studio 2008 공식사이트 http://msdn2.microsoft.com/ko-kr/vs2008/products/default.aspx

각종 다운로드 관련 페이지 http://msdn2.microsoft.com/ko-kr/vstudio/aa700831.aspx
trial 기간은 90일입니다.(한글지원함)

Express Editions http://www.microsoft.com/express/default.aspx
(한글지원함)

Visual Studio 2008 평가판 베타2 Team System
http://www.microsoft.com/downloads/details.aspx?FamilyId=428C076F-E3EF-4290-9FF4-F6FD8F180B7D&displaylang=ko
2008년 3월 까지 사용가능하다고 하네요.(확인못해봤음,한글지원함)

참고 : Visual Studio 2005 Express 관련페이지 http://www.microsoft.com/korea/msdn/vstudio/express/
(한글지원)
Posted by 빨강토끼
,
New : 새로추가된 기능이나 코딩
Improved : 개선된 기능이나 코딩
Fixed : 버그나 문제점이 발견되어서 수정된 기능이나 코딩
Update : 외부라이브러리나 리소스가 업데이트
Posted by 빨강토끼
,
제목이 맞는지 모르겠습니다.
프로그래밍을 하다보면 자신의 부모 클래스에 다양한 이벤트와 위저드로 생성된
afx_msg 함수를 동작시켜야될때가 있습니다.
예를 들어 자식다이얼로그에서 종료버튼을 클릭하면 프로그램이 종료되거나.
특정한 이벤트를 받는 함수를 호출해야할경우 입니다.

GetParent()->SendMessage(이벤트ID)

예)
GetParent()->SendMessage(WM_CLOSE); // 종료시

GetParent()->SendMessage(WM_COMMAND, ID_BUTTON1); // 버튼1 클릭시


Posted by 빨강토끼
,
다이얼로그 프로그래밍을 하다보니
동적으로 다이얼로그의 사이즈를 조정해야될 필요가 있었습니다.

의외로 쉬운 방법이 있었습니다.

MoveWindow(Xmin,yMin,Xmax,yMax);

이상입니다.

Posted by 빨강토끼
,
MFC 프로그램을 만들때
사용자 인터페이스 기능에서
시스템메뉴를 선택하면 타이틀바에서 마우스오른버튼을 클릭하면 메뉴가 나타납니다.


정보상자도 선택하면 메뉴가 나타날때 정보.. 라는 메뉴도 추가됩니다.
Posted by 빨강토끼
,
Posted by 빨강토끼
,
다이얼로그가 뜨면 자동으로 에디트컨트롤 이라든지 다른 컨트롤에 포커스를
가져가게 하고 싶은데 잘되지 않았습니다.

보통 ::OnInitDialog() 에
m_ctrl_edit.SetFocus() 이런식의 코드를 넣는데
바로 주의 할점은
return 값입니다.
::OnInitDialog() 의 리턴값이
default value 값인 true 로 되어있는데
이렇게 하면 m_ctrl_edit.SetFocus() 먹지않습니다.

return false 라고 하면
SetFocus() 가 됩니다.


Posted by 빨강토끼
,
입력된 글자수에 대하여 반응하는 프로그래밍을 하던중에
영문일땐 한글자를 1바이트로 계산하고
한글일경우엔 2바이트로 계산하기때문에
GetLength() 를 하면 정확한 글자수를 구하기가 힘들었습니다.

이곳저곳을 찾아봐도 해결책을 찾기 힘들었는데
API 함수중에
SendDlgItemMessageW 를 사용하면 해결할수있다는것을 알았습니다.

예를 들어 editbox 가 IDC_EDITTEXT 라면
int Len = SendDlgItemMessageW(m_hWnd,IDC_EDITEDIT,WM_GETTEXTLENGTH,0,NULL);
이라고 하면 정확한 글자갯수가 나옵니다.

Posted by 빨강토끼
,

UpdateData

프로그래밍/C++ 2007. 12. 11. 20:33
UpdateData(TRUE) 는 컨트롤 화면에 가지고 있는 값이 그변수로 들어오게 됩니다.
UpdateData(FALSE) 는 그 변수에 있는 값이 컨트롤의 화면에 나타나게 됩니다.
Posted by 빨강토끼
,
CreateFont 와 CreateFontIndirect 는 둘다 폰트를 생성하는 함수입니다.

BOOL CreateFont(
    int nHeight, // 폰트의 높이
    int nWidth,   //폰트의 가로크기
    int nEscapement,    // escapement 벡터각도
    int nOrientation,      // 기준선(보통 수평선) 에서의 각도
    int fnWeight,           // 폰트 가중치
    DWORD fdwItalic,    // 이탤릭 속성 플러그
    DWORD fdwUnderline,   // 밑줄 속성 플러그
    DWORD fdwStrikeOut,   // 중앙선 속성 플러그
    DWORD fdwCharSet,    // 문자열 세트 명칭
    DWORD fdwOutputPrecision,   // 출력 정밀도
    DWORD fdwClipprecision,      // 클리핑 정밀도
    DWORD fdwQuality,               // 출력 문자의 질
    DWORD fdwPitchAndFamily,   // 글꼴 피치의 종류
    LPCSTR lpszFace          // 폰트체의 이름
);

CreateFontIndirect 함수는 LOGFONT 구조체를 설정하여 폰트를 만듭니다.
LOGFONT 구조체는 CreateFont 안의 인자의 값을 그대로 구조체화 한것입니다.

typedef struct tagLOGFONT { //lf
    LONG lfHeight;
    LONG lfWidth;
    LONG lfEscapement;
    LONG lfOrientation;
    LONG lfWeight;
    BYTE lfItalic;
    BYTE lfUnderline;
    BYTE lfStrikeOut;
    BYTE lfCharSet;
    BYTE lfOutPrecision;
    BYTE lfClipPrecision;
    BYTE lfQuality;
    BYTE lfPitchAndFamily;
    TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;

CreateFont 를 이용할때와 CreateFontIndirect 를 이용할 때는 차이가 있습니다.
CreateFontIndirect 를 이용할때엔 가로 크기와 세로크기를 각각 10으로
설정하였다 하더라도 그 문자의 스타일에 따라 보기 좋은 값으로 약간 변합니다.
즉, CreateFontIndirect 함수를 이용하면 글자체가 좀 보기 좋게 나타납니다.
실지로 폰트를 사용할 때는 CreateFontIndirect 를 많이 사용합니다.
폰트 대화상자에서 특정 폰트를 설정하였을때 LOGFONT가 값을 받으며,
이 값을 CreateFontIndirect 에서 바로 이용할 수 있는 장점도 있습니다.
Posted by 빨강토끼
,