GSI

가끔 느끼는 거지만 내가 지금 공부하는 것을 사용해서 홈페이지를 만들어 보고 싶은
꿈은 예전 부터 있었던거 같다.

지금 Asp.Net, C#, wpf(xbap) 등을 보고 있지만.
이제는 하나 만들어 봐야 할거 같다.

테스트겸 만드는 거라서 호스팅 받기도 어중간 하고
더욱이 asp.net는 웹 호스팅이 거의 없다.

그래서 집에서 진행해 볼려고 한다.

솔직히 웹 쪽은 거의 몰라서..-.- 몇일을 허비한 결과 80 포트는 통신사에서
막아 놨다는 것을 알았다.

그래서 다른 포트를 사용 해서 해보았다.
우왕.. 되는구나..
이제 도메인 하나 사서.. ip 연결만 ^^..
그나저나 유동 아이피라.. 하루에 한번정도는 링크를 해주어야 할듯 하다 ^^

여기는 우선 필요한 자료만 옮기고 홈페이지가 다 만들어 지면
넘겨야 할거 같다.

사실 얼마나 걸릴지 난 모른다 ^^
Posted by gsi
:

사용자 삽입 이미지

C#에서 프로젝트를 하기 위해서 DirectX를 연동하고 있다.
현재 소스는 Tutorial 1: Create a Device를 사용해서 UserControl에 붙인 것과 동일합니다.

Posted by gsi
:

이번에 데모로 하나 작업 하는게 있다.

그런데 CScrollView를 사용한 데모이다.
물론 기존에 소스를 보면 Zoom, Pan, Scroll 기능이 접목되어 있는
소스들이 많이 있다.

이것을 갔다가 활용할려고 했지만.
마우스로 찍는 부분과 화면의 표현 부분에서
정말 많이 막히는거 같다.

내가 개념을 잘못 잡고 있는건지...
왠지 어렵다.

MM_TEXT를 사용해서 하는것도 괜찮은거 같은데.
화면에 해당 그림을 찍고 Zooming를 하게 되면
이상하게 자꾸 화면이 표현이 되질 않는다.

혹 누가 아시는분 있으시면 코멘트 부탁..
술, 밥 다 쏩니다 ^^
Posted by gsi
:

Test Template

내 일상 2007. 10. 28. 00:38 |

Test
Test
Test

Posted by gsi
:

비주얼 C++에서 자동으로 이 문제를 지원하는 방법은 없고, 다만 이에 대한 함수가 공개되어 있을 뿐입니다.
MSJDrawTransparentBitmap이라는 함수가 마이크로소프트의 knowledgebase 079212에 나와있습니다. 다음 소스 코드를 보면 이 함수가 하는 일은 비트맵을 불러오고 페인팅 표면을 투명하게 칠하기 위해 마스크로 보내는 작업을 한다는 것을 알 수 있습니다(자세한 내용은 MSJ 한국판 98년 1월호 108쪽 참고).

// MSJDrawTransparentBitmap
// 함수는 복사되었고 Knowledgebase 기사 Q79212으로부터 적용되었다.
// 제목 : 투과되는 비트맵 그리기
void MSJDrawTransparentBitmap(CDC* pDC, CBitmap* pBitmap, int xStart,
    int yStart, COLORREF cTransparentColor)
{
    CBitmap bmAndBack, bmAndObject, bmAndMem, bmSave;
    CDC dcMem, dcBack, dcObject, dcTemp, dcSave;
    dcTemp.CreateCompatibleDC(pDC);
    dcTemp.SelectObject(pBitmap); //비트맵 선택하기
    BITMAP bm;
    pBitmap->GetObject(sizeof(BITMAP), (LPSTR)&bm);
    CPoint ptSize;
    ptSize.x = bm.bmWidth;         // 비트맵의 폭
    ptSize.y = bm.bmHeight;        // 비트맵의 높이
    dcTemp.DPtoLP(&ptSize, 1);     // 논리 포인트로부터 장치 포인트로 변환
    // 임시 데이터를 보관하기 위해 몇몇 DC를 생성
    dcBack.CreateCompatibleDC(pDC);
    dcObject.CreateCompatibleDC(pDC);
    dcMem.CreateCompatibleDC(pDC);
    dcSave.CreateCompatibleDC(pDC);
    // 각 DC를 위해 비트맵을 생성. DC는 GDI의 숫자만큼 필요하다.
    functions.
    // 모노크롬 DC
    bmAndBack.CreateBitmap(ptSize.x, ptSize.y, 1, 1, NULL);
    // 모노크롬 DC
    bmAndObject.CreateBitmap(ptSize.x, ptSize.y, 1, 1, NULL);
    bmAndMem.CreateCompatibleBitmap(pDC, ptSize.x, ptSize.y);
    bmSave.CreateCompatibleBitmap(pDC, ptSize.x, ptSize.y);
    // 각 DC는 픽셀 데이터를 저장하기 위해 비트맵 객체를 선택해야 한다.
    CBitmap* pbmBackOld = dcBack.SelectObject(&bmAndBack);
    CBitmap* pbmObjectOld = dcObject.SelectObject(&bmAndObject);
    CBitmap* pbmMemOld = dcMem.SelectObject(&bmAndMem);
    CBitmap* pbmSaveOld = dcSave.SelectObject(&bmSave);
    // 적당한 맵핑 모드를 설정한다.
    dcTemp.SetMapMode(pDC->GetMapMode());
    // 이리로 보내진 비트맵을 저장한다.
    dcSave.BitBlt(0, 0, ptSize.x, ptSize.y, &dcTemp, 0, 0, SRCCOPY);
    // 투영되는 비트맵에 포함되는 색으로 소스 DC의 배경색을 설정한다.
    COLORREF cColor = dcTemp.SetBkColor(cTransparentColor);
    // 소스 비트맵에서 모노크롬 비트맵까지 BitBlt를 수행해서
    // 비트맵용 오브젝트 마스크를 생성한다.
    dcObject.BitBlt(0, 0, ptSize.x, ptSize.y, &dcTemp, 0, 0, SRCCOPY);
    // 원래 색으로 되돌리는 소스 DC의 배경색을 설정한다.
    dcTemp.SetBkColor(cColor);
    // 객체 마스크를 반전시킨다.
    dcBack.BitBlt(0, 0, ptSize.x, ptSize.y, &dcObject, 0, 0, NOTSRCCOPY);
    // 목적지에 메인 DC의 배경을 복사한다.
    dcMem.BitBlt(0, 0, ptSize.x, ptSize.y, pDC, xStart, yStart, SRCCOPY);
    // 비트맵이 놓여지는 위치를 마스크한다.
    dcMem.BitBlt(0, 0, ptSize.x, ptSize.y, &dcObject, 0, 0, SRCAND);
    // 비트맵의 투명 색상 픽셀을 마스크한다.
    dcTemp.BitBlt(0, 0, ptSize.x, ptSize.y, &dcBack, 0, 0, SRCAND);    
    // 목적지 DC상에서 배경색과 비트맵을 XOR 연산한다.
    dcMem.BitBlt(0, 0, ptSize.x, ptSize.y, &dcTemp, 0, 0, SRCPAINT);
    // 스크린에 목적지를 복사한다.
    pDC->BitBlt(xStart, yStart, ptSize.x, ptSize.y, &dcMem, 0, 0, SRCCOPY);
    // 보내진 비트맵으로 원래 비트맵을 대체한다.
    dcTemp.BitBlt(0, 0, ptSize.x, ptSize.y, &dcSave, 0, 0, SRCCOPY);
    // 메모리 비트맵을 리셋시킨다.
    dcBack.SelectObject(pbmBackOld);
    dcObject.SelectObject(pbmObjectOld);
    dcMem.SelectObject(pbmMemOld);
    dcSave.SelectObject(pbmSaveOld);
    // 메모리 DC와 비트맵 객체들은 자동으로 삭제된다.
}

Posted by gsi
: