WYSWYG(What You See What You Get)
- 눈에 보이는 것과 프린터 출력물이 일치한다는 의미
- MS 워드나 한글 같은 워드프로세서에 있어 이런 기능은 당연
WYSWYG(What You See What You Get)
void CTextRgnView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 여기에 메시지 처리기 코드를 추가합니다.
// 그리기 메시지에 대해서는 CView::OnPaint()을(를) 호출하지 마십시오.
//임의의 두 사각형을
//각기 다른 색상(붉은색과 회색)으로 칠한다.
CRect rectLeft = CRect(50, 50, 250, 150);
CRect rectRight = CRect(250, 50, 450, 150);
dc.FillSolidRect(&rectLeft, RGB(192, 0, 0));
dc.FillSolidRect(&rectRight, RGB(192, 192, 192));
//앞서 만든 두 사각형을 별도의 영역으로 만든다.
CRgn rgnLeft, rgnRight;
rgnLeft.CreateRectRgnIndirect(rectLeft);
rgnRight.CreateRectRgnIndirect(rectRight);
LOGFONT lf;
::ZeroMemory(&lf, sizeof(lf));
lf.lfHeight = 72;
wsprintf(lf.lfFaceName, _T("%s"), _T("Arial Black"));
CFont NewFont;
NewFont.CreateFontIndirect(&lf);
CFont* pOldFont = dc.SelectObject(&NewFont);
dc.SetBkMode(TRANSPARENT);
//dc.TextOut(60, 65, TEXT("TEST STRING"));
//왼쪽 영역을 선택하여 문자열을 출력한다.
dc.SetTextColor(RGB(192, 192, 192));
dc.SelectClipRgn(&rgnLeft);
dc.TextOut(60, 65, TEXT("TEST STRING"));
//오른쪽 영역을 선택하여 문자열을 출력한다.
dc.SetTextColor(RGB(192, 0, 0));
dc.SelectClipRgn(&rgnRight);
dc.TextOut(60, 65, TEXT("TEST STRING"));
//영역해제
dc.SelectClipRgn(NULL);
dc.SelectObject(pOldFont);
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndStatusBar.Create(this))
{
TRACE0("상태 표시줄을 만들지 못했습니다.\n");
return -1; // 만들지 못했습니다.
}
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
// 두 영역 및 조합된 영역을 주어진 좌표로 생성한다.
m_RgnRect1.CreateRectRgn(0, 0, 100, 100);
m_RgnRect2.CreateRectRgn(70, 70, 170, 170);
// 이 영역은 조합된 결과가 저장될 영역이므로 좌표는 의미가 없다.
m_RgnTotal.CreateRectRgn(0, 0, 0, 0);
// 두 영역을 조합한 새로운 영역을 만든다.
m_RgnTotal.CombineRgn(&m_RgnRect1, &m_RgnRect2, RGN_XOR);
// 조합된 영역이 CMainFrame 윈도우의 영역이 되도록 한다.
SetWindowRgn((HRGN)m_RgnTotal, TRUE);
return 0;
}
함수명 | 설명 |
OnPaint() |
모니터 화면에 출력 |
OnPrint() | 프린터에 출력 |
OnDraw() |
모니터 화면과 프린터 모두에 출력 |
#include "stdafx.h"
#include <typeinfo>
#include <iostream>
using namespace std;
template < typename T >
void asdf( T arg1) {
cout << typeid( T ).name() << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
int aaa= 1000;
asdf(aaa);
return 0;
}
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
#define GET_NAME(n) #n
int _tmain(int argc, _TCHAR* argv[])
{
int asdf = 1000;
string str = GET_NAME(asdf);
cout << str << endl;
return 0;
}
Windows XP에 SATA 드라이버가 포함되어 있지 않아서 발생하는 문제이다.
SATA 드라이버를 Windows XP 이미지에 포함시킨 후 설치해야 한다.
NLITE 라는 프로그램을 통해서 작업이 가능하다.
참고 사이트:
실행 시 'fail to create java virtual machine' 에러 메시지가 뜬다면
eclipse.ini 파일에 경로를 지정해 주어야 하는 것 같다.
아래와 같이 추가(경로는 본인에 맞게 변경해야 함)
-vm
C:/Program Files/Java/jdk1.7.0_05/bin/javaw.exe