GUI
-
컴퓨터 화면 캡쳐 - MFCGUI/GDI 2008. 12. 25. 16:39
void CCaptureView::OnDraw(CDC* pDC) { CCaptureDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here // 화면의 크기를 얻음 CRect rect; GetClientRect(&rect); // 데스크 탑 윈도우의 DC를 얻음 CClientDC deskWnd(GetDesktopWindow()); // 데스크 탑 윈도우로부터 비트맵 블록 전송 pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &deskWnd, 0, 0, SRCCOPY); }
-
더블 버퍼링 - MFCGUI/GDI 2008. 12. 25. 16:31
void CMemDrawView::OnDraw(CDC* pDC) { CMemDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here // 화면 DC와 호환성 있는 메모리 DC를 만듦 CDC BufferDC; BufferDC.CreateCompatibleDC(pDC); // 화면 DC와 호환성 있는 메모리 비트맵을 만듦 CBitmap bmpBuffer; bmpBuffer.CreateCompatibleBitmap(pDC, 200, 200); // 메모리 DC에 메모리 비트맵을 선택 CBitmap *pOldBitmap = (CBitmap *)BufferDC.SelectObject(&bmpBuffer..
-
이미지 처리하기 - CxImageGUI/GDI 2008. 12. 25. 16:00
CxImage .Load() .CreateFromHANDLE() .CopyToHandle() .Save() .Draw() .GetWidth() .GetHeight() .Negative() .Light() .Filter() .Flip() .Mirror() .RotateLeft() .RotateRight() .Rotate() .Resample() .Crop() .Expand() .Thumbnail() ::FindType() class CImageDoc : public CDocument { ... // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CImageDoc) public: ... virtual BOOL OnO..
-
이미지 렌더링하기 - CxImageGUI/GDI 2008. 12. 22. 23:15
CxImage .Load() .CreateFromHANDLE() .CopyToHandle() .Save() .Draw() .GetWidth() .GetHeight() ::FindType() // Stdafx.h #include "xImage.h" class CImageApp : public CWinApp { public: CImageApp(); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CImageApp) public: virtual BOOL InitInstance(); //}}AFX_VIRTUAL // Implementation //{{AFX_MSG(CImageApp) ... afx_msg void O..
-
MDI - MFCGUI/컨트롤 2008. 12. 22. 21:44
여러가지 도큐먼트 타입을 지원시 메뉴, 아이콘, 스트링 리소스 추가 class CDrawApp : public CWinApp { ... // Implementation //{{AFX_MSG(CDrawApp) afx_msg void OnAppAbout(); afx_msg void OnFileNew(); afx_msg void OnFileNewSelect(); afx_msg void OnFileNewDraw(); afx_msg void OnFileNewText(); afx_msg void OnFileOpen(); //}}AFX_MSG DECLARE_MESSAGE_MAP() // { private: int m_nNewDocType; // } }; BEGIN_MESSAGE_MAP(CDrawApp, CWinApp..
-
Draw - MFCGUI/GDI 2008. 12. 21. 16:03
CWnd OnPaint .Invalidate() .GetDC() .ReleaseDC() CDC -> CPaintDC -> CClientDC c.f CWnd.GetDC() -> CWindowDC GDI 객체 펜 옵션 브러시 옵션 c.f. .FillRect() 그래픽 함수 .SetMapMode() .SetWindowExt() .SetViewportExt() .SetWindowOrg() .SetViewportOrg() .LPtoDP() .DPtoLP() .SelectObject() // GDI 객체들을 생성 후 적용 .SelectStockObject() BLACK_PEN|WHITE_PEN|WHITE_BRUSH .MoveTo() .LineTo() .TextOut() .SetTextAlign() TA_LEFT T..
-
상태 바 - MFCGUI/컨트롤 2008. 12. 14. 18:02
CMainFrame m_wndStatusBar CStatusBarCtrl .SetBkColor() CStatusBar -> CControlBar .Create() .SetIndicators() ID_SEPARATOR .SetPaneInfo() 특정 Pane의 속성 변경 SBPS_NOBORDERS SBPS_POPOUT SBPS_DISABLED SBPS_NORMAL SBPS_STRETCH .SetPaneText() .GetStatusBarCtrl() .GetItemRect() STRINGTABLE DISCARDABLE BEGIN ID_INDICATOR_POINT "마우스 위치 : X 좌표, Y 좌표" END static UINT indicators[] = { ID_SEPARATOR, // status lin..
-
메뉴 - MFCGUI/컨트롤 2008. 12. 14. 17:53
CWnd m_hMenuDefault OnContextMenu // WM_CONTEXTMENU OnInitMenuPopup // WM_INITMENUPOPUP .SetMenu() .GetMenu() .GetSystemMenu() CMenu m_hMenu .LoadMenu() .GetSubMenu() // CMenu .CreateMenu() .CreatePopupMenu() .DestroyMenu() .Attach() .Detach() .TrackPopupMenu() TPM_LEFTALIGN .EnableMenuItem() MF_ENABLED MF_GRAYED .CheckMenuItem() MF_CHECKED MF_UNCHECKED .AppendMenu() MF_STRING|MF_SEPARATOR| MF_P..