본문 바로가기
반응형

C & C++/MFC Media17

BMP, GIF, JPG 수정하기 BMP, GIF, JPG 와 같은 이미지 파일에 문자열이나 그림을 추가하고 싶은 경우 CImage 클래스를 사용해 보세요. CImage 클래스는 다양한 이미지 파일을 읽을 수 있고 저장할 수 있는 클래스입니다. CImage 클래스를 이용하여서 이미지 파일을 읽어 들인 후, 이미지에 사선을 그은 후 저장하는 예제 소스입니다. 158: #include "atlimage.h" 159: 160: void CSaveBmpFileDlg::OnBnClickedOk() 161: { 162: CImage clsImage; 163: 164: HRESULT hr = clsImage.Load( m_strFilePath ); 165: if( SUCCEEDED(hr) ) 166: { 167: CDC * pDC = CDC::Fro.. 2012. 6. 20.
DLL 에 있는 비트맵(Bitmap) 리소스를 실행 파일로 가져오는 방법 3가지 DLL 에 있는 비트맵 리소스를 실행 파일로 가져오는 방법 3가지 1. FindResource() -> LoadResource() -> LockResource() 를 이용한 방법 ① LoadLibrary() 를 이용해서 DLL 파일의 핸들값을 얻어온다. HINSTANCE hDll = NULL; hDll = LoadLibrary("ExportDll.dll"); if(hDll == NULL) { MessageBox("Can't ExportDll.dll", "ResourceDll", MB_OK); return; } ② FindResource() -> LoadResource() -> LockResource() 와 CBrush의 객체인 CreateDIBPatternBrush를 이용해서 출력. HRSRC hRes;.. 2011. 12. 14.
Dialog 를 캡쳐하여 인쇄하기 int nWidth, nHeight; CClientDC dc(this); //this->pImgWnd CDC MemDC; MemDC.CreateCompatibleDC(&dc); CRect rect; GetClientRect(rect); nWidth = rect.Width(); nHeight = rect.Height(); CBitmap BMP; BMP.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height()); CBitmap* pOldBitmap = MemDC.SelectObject(&BMP); MemDC.BitBlt(0, 0, nWidth, nHeight, &dc, 0, 0, SRCCOPY); /* SECJpeg* jpg = new SECJpeg(); jpg->.. 2011. 10. 25.
CListCtrl 에 이미지(tga, png, jpg, tif, bmp) 컨트롤 하기 왼쪽의 리스트 컨트롤에 이미지를 등록하고, 더블 클릭하면 오른쪽의 창에 띄우기. 지원하는 포멧은 tga, png, jpg, tif, bmp 이다. Gdiplus 를 이용했다. 왼쪽 CListCtrl 대신에 CImageListControl 를 사용해야하고, 오른쪽은 IDC_STATIC 인데.. CImageArea로 선언해야 한다. ---------------------------------------------------------------------------------------------- 어디선가 받은 오픈소스인데 세팅하는 방법이 너무 복잡해서, CListCtrl 상속을 받아서 외부에서 선언만 하면 띄울수 있게 만들었다. #include using namespace Gdiplus; #pragma .. 2011. 4. 28.
배경 이미지 연속적으로 돌리기 배경 연속적으로 돌리기 한 비트맵의 이미지로 마치 배경이 움직이는 듯한 스크롤을 구현.. 간단한 슈팅게임을 만들때 배경이 연속적으로 움직이면서 좀더 멋진 화면이 나타날수 있다... (비트맵이 좀 괜찮다면....) 그대신 스크롤 될때 좀 이어지는 비트맵이어야 이쁘게 나온다... 간단한 게임상에서는 뒤에 파란배경을 출력하고 구름 이미지를 연속적으로 돌려도 괜찮은 화면이 나온다. 배경이미지가 640 x 480 사이즈의 back.bmp 라고 한다면... LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { static HDC hdc, MemDC, hBackDC; HBITMAP hbitmap, oldbitmap, hb.. 2011. 4. 28.
화면 갱신 OnPaint(), OnDraw(), Invalidate() 화면 갱신 OnPaint(), OnDraw(), Invalidate() 1. OnPaint(), OnDraw() 함수는 Client영역을 다시그려줘야 할 필요가 있을 때 호출되는 함수 이다. 2. Client영역을 다시 그려줘야함 → WM_PAINT → OnPaint → OnDraw 즉, OnPaint 는 윈도우 메시지에 의해 호출되는 메시지 처리기 함수 이고, OnDraw 는 OnPaint 함수에서 호출되는 함수 이다. virtual void OnDraw( CDC* pDC ) = 0; afx_msg void OnPaint( ); Invalidate() MFC 에서 무언가 그리고 화면에 표현 할때 화면에 변화를 주고 싶다고 할때 쓰이는 함수가 Invalidate 함수인데 이함수는 화면을 갱신할때 즉 WM.. 2011. 4. 27.
반응형