수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1694070
  • Today | 421
  • Yesterday | 588

1 Articles, Search for '메인 프레임 윈도우'

  1. 2007/02/22 메인 프래임 윈도우에 얼굴을 부여하기
Programming/MFC2007/02/22 10:53

메인 프래임 윈도우에 얼굴을 부여하기

원본 : http://www.debuglab.com/knowledge/mainframe.html

1.요약

MDI의 메인 프래임 윈도우에 비트맵 파일을 삽입하는 방법을 소개합니다.


2.본문

MDI 환경으로 프로그래밍을 하실 때 회색 빛깔의 딱딱하고 무미 건조한 메인 프래임 윈도우를 많이 보셨을 겁니다. 이러한 무미 건조한 메인 프래임 윈도우에 비트맵 파일을 덮어 씌워서 딱딱한 메인 프래임 윈도우를 포장해 보기로 하겠습니다. 일단, 메인 프래임을 우리가 건드리기 위해서는 우리가 만들어 놓은 application의 mainframe class보다 상위 클래스인 CWnd 클래스에서 상속 받는 클래스를 하나 더 만들어서 이 클래스에서 비트맵 작업을 수행하면 됩니다. 이러한 작업을 하기 위해서 우리가 세워야 하는 전략은 우선 먼저 포토샵이나 페인트 샵 프로와 같은 그래픽 에디팅 프로그램에서 우리가 원하는 영상 처리 작업을 수행하고 이를 비트맵으로 저장을 합니다. 그리고 CWnd 클래스에서 상속 받는 클래스를 하나 더 만들어서 이 클래스에서 비트맵 작업을 수행합니다. 그리고 이 새로 삽입된 클래스에 우리가 영상 처리하여 저장하여 둔 비트맵 파일을 로딩합니다. 그리고 이 새로 삽입된 클래스를 우리가 만들어 놓은 application의 mainframe class에 인클루드 시킨 다음, mainframe class가 생성 되는 시점에서 로딩된 비트맵 파일을 뿌려주면 끝납니다. 아주 간단하지요?? 그럼 소스코드를 보시고 음미해 보시기를 바랍니다.


3.예제

//아래의  IDB_ LEDZEPPLINE은 리소스에 로딩되어 있는 비트맵 파일의 아이디 입니다. 

CMyBMPClient::CMyBMPClient() 

{ 

    VERIFY(m_bmp.LoadBitmap(IDB_LEDZEPPLINE)); 

} 

BOOL CMyBMPClient::OnEraseBkgnd(CDC* pDC) 

{ 

    // TODO: Add your message handler code here and/or call default 

    CWnd::OnEraseBkgnd(pDC); 

    BITMAP bm ; 

    CDC dcMem ; 

    

    VERIFY(m_bmp.GetObject(sizeof(bm), (LPVOID)&bm)); 

    

    dcMem.CreateCompatibleDC(pDC); 

    CBitmap* pOldBMP = (CBitmap*) dcMem.SelectObject(&m_bmp); 

    

    CRect rect; 

    GetClientRect(rect); 

    

    pDC->BitBlt((rect.right-bm.bmWidth) / 2,   // centered 

        (rect.bottom-bm.bmHeight) / 2, 

        bm.bmWidth, 

        bm.bmHeight, 

        &dcMem, 

        0, 0, 

        SRCCOPY); 

    

    dcMem.SelectObject(pOldBMP) ; 

    

    return TRUE; 

    

} 



void CMyBMPClient::OnSize(UINT nType, int cx, int cy) 

{ 

    CWnd::OnSize(nType, cx, cy); 

    

    // TODO: Add your message handler code here 

    RedrawWindow(NULL, NULL, 

        RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW|RDW_ALLCHILDREN);     

    return ; 

    

} 



// 이렇게 코딩하신 뒤에 메임 프래임 클래스의 OnCreate 함수에 

// 이를 의 클래스를 삽입시면 됩니다.  



// 먼저 mainframe class 해더에 다음과 같이 정의 하시고, 

CMyBMPClient m_wndClient; 



// cpp 파일에서 메인 프래임 생성을 담당하는 OnCreate 함수에 다음과 같이 코딩합니다. 

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 

{ 

    if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) 

        return -1; 

    if (!m_wndClient.SubclassWindow(m_hWndMDIClient)) 

    { 

        TRACE("Failed to subclass MDI client window.\n"); 

        return -1; 

    } 

    

    // 생략.. 

} 



- 2001.08.13 Smile Seo -

"MFC" 카테고리의 다른 글
  • 랭귀지 팩을 만들자!! (0)2007/02/23
  • 윈도에 포커스가 가지 못하게 하기 (0)2007/02/23
  • 메인 프래임 윈도우에 얼굴을 부여하기 (0)2007/02/22
  • Explorer처럼 툴바에 Text 넣기 (0)2007/02/22
  • 문자열 검색 API (0)2007/02/22
2007/02/22 10:53 2007/02/22 10:53
Posted by webdizen
Tags 메인 프레임 윈도우, 비트맵
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2629

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • Gateway
  • ToolBar
  • 동시성
  • 음악 치료
  • Chat
  • 소교
  • 에러
  • 진로 포도주
  • J&B 레어
  • 아바타
  • RSS
  • Windows
  • 디버깅
  • Monitoring
  • C#
  • 한서관
  • 보안
  • 순환운동
  • 강원대학 교기
  • Invitation

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.