Skip to content
DarkKaiser의 블로그
DarkKaiser의 블로그
  • 개발 관련 자료(노션)
  • Raspberry Pi(노션)
  • WD My Cloud(노션)
  • GitHub
DarkKaiser의 블로그

[월:] 2010년 03월

delegate 요약

DarkKaiser, 2010년 3월 31일2023년 9월 5일

– 델리게이트를 통해 특정 작업을 캡슐화할 수 있다.

– 델리게이트 인스턴스에 어떤 메서드를 사용할 수 있는지는 델리게이트 타입의 선언에 따라 다르다.

– 델리게이트 인스턴스 생성을 위해서는 호출할 메서드와 (인스턴스 메서드의 경우) 메서드를 호출할 대상이 필요하다.

– 델리게이트 인스턴스는 불변성(immutable)을 갖는다. 한번 생성되고 나면 변경될 수 없다. 이렇기 때문에 델리게이트를 다른 델리게이트와 합친다거나

Continue Reading

CImage 클래스를 이용한 이미지 로드 & 저장

DarkKaiser, 2010년 3월 31일2023년 9월 5일

MFC에서 atlimage.h 파일을 포함하면 CImage 클래스를 사용하여 gif, jpg, png 등의 파일을 로드 및 저장할 수 있다.

내부적으로 CImage 클래스는 GDI+를 이용하여 이미지를 로드하는 것을 볼 수 있다.
#include <atlimage.hCImage Image;
HRESULT hResult = Image.Load(_T("f:\\yes_btn_down.png"));
if (FAILED(hResult))
{
  AfxMessageBox("failed");
  return;
}

Image.BitBlt(dc.m_hDC, 0, 0);

// ----------------------------------------------------------

// 이미지 DC를 
Continue Reading

CComboBoxEx

DarkKaiser, 2010년 3월 30일2023년 9월 4일
콤보박스의 각 항목에 이미지가 들어가도록 하는 코드
// .h
CImageList m_ImgList;
CComboBoxEx m_ComboEx;

// .cpp
CBitmap bmp;
bmp.LoadBitmap(IDB_IMAGELIST);

m_ImgList.Create(16, 16, ILC_COLOR24, 7, 7);
m_ImgList.Add(&bmp, RGB(255, 0, 0));
m_ComboEx.SetImageList(&m_ImgList);

CString strTmp;
COMBOBOXEXITEM cbi;
::ZeroMemory(&cbi, sizeof(cbi));

cbi.mask = CBEIF_IMAGE|CBEIF_SELECTEDIMAGE|CBEIF_TEXT;
for (int i = 0; i < 7; i++)
{
  strTmp.Format("%dth Item", i);

  
Continue Reading

AlphaBlend() 함수를 이용한 반투명 처리

DarkKaiser, 2010년 3월 30일2023년 9월 4일
    //바탕 이미지 출력
    CDC MemDC;
    MemDC.CreateCompatibleDC(pDC);


    CBitmap bmpBack;
    bmpBack.LoadBitmap(IDB_BKIMG2);
    CBitmap *pOldBackBitmap = (CBitmap*) MemDC.SelectObject(&bmpBack);


    BITMAP backBitMap;
    bmpBack.GetBitmap(&backBitMap);


    pDC-BitBlt(0, 0, backBitMap.bmWidth, backBitMap.bmHeight, &MemDC, 0, 0, SRCCOPY);


    MemDC.SelectObject(pOldBackBitmap);
    MemDC.DeleteDC();
   
    //아이콘, 선 출력
    CDC  dcMem;
    dcMem.CreateCompatibleDC(pDC);
    pOldBackBitmap = (CBitmap*) dcMem.SelectObject(&bmpBack);


    HICON hIcon;
    hIcon = AfxGetApp()-LoadIcon(MAKEINTRESOURCE(IDI_EQICON));


    for(int i = 0 ; i 
Continue Reading

TransparentBlt()

DarkKaiser, 2010년 3월 30일2023년 9월 3일
BOOL TransparentBlt(
  HDC hdcDest,        //DC 핸들러
  int nXOriginDest,    //비트맵이 그려질 X좌표
  int nYOriginDest,    //비트맵이 그려질 Y좌표
  int nWidthDest,      //출력될 비트맵의 가로 길이
  int hHeightDest,     //출력될 비트맵의 세로 길이
  HDC hdcSrc,        //비트맵을 미리 그려놓을 DC 핸들
  int nXOriginSrc,    //
  int nYOriginSrc,    //
  int nWidthSrc,      //
  int nHeightSrc,     //
  UINT crTransparent    //투명화 
Continue Reading

_TrackMouseEvent

DarkKaiser, 2010년 3월 30일2023년 9월 5일

– SetCapture() 함수처럼 마우스 이벤트를 추적할 수 있도록 해줍니다. 그러나 동작 원리를 놓고 보면 두 함수는 너무나 다른 함수입니다. 마우스가 자신의 윈도우 영역을 벗어났음을 감지하는 방법에서, SetCapture() 함수는 응용 프로그램 자신이 직접 마우스를 점유하고 계속 마우스 메시지를 수신하여 경계를 벗어났는지 검사하지만, _TrackMouseEvent() 함수는 운영체제에 자신의 윈도우를 등록하여 마우스가 자신의 영역을

Continue Reading

CTab을 이용한 탭 구현 방법

DarkKaiser, 2010년 3월 27일2023년 9월 6일

– 대화상자 기반 프로젝트라고 가정…

1. 도구상자에서 탭 컨트롤을 대화상자에 추가한 후, 컨트롤 변수로 생성한다.

CTabCtrl m_Tab;

2. 탭 컨트롤을 초기화한다.

m_Tab.InsertItem(0, _T("TAB1")); 
m_Tab.InsertItem(1, _T("TAB2"));

3. 탭 컨트롤 안에 들어갈 실제 탭 페이지를 추가한다.

탭 페이지는 새로운 대화상자를 삽입하고 속성을 Border(NONE), Style(Child)로 설정한다.

4. 추가한 탭 페이지의 클래스를 생성한 후,

Continue Reading

.NET 어셈블리를 수정하여 크랙하는 방법

DarkKaiser, 2010년 3월 25일2023년 9월 6일

1. 크랙하려는 어셈블리 파일을 ildasm으로 열어서 덤프를 뜬다.

2. 저장된 파일을 열어서 어셈블리를 수정한다.
3. 수정된 어셈블리를 다시 실행 파일로 컴파일한다.
ilasm /exe hoons.il /output=HOONS.exe
Continue Reading

YourKit 자바 프로파일러

DarkKaiser, 2010년 3월 19일2023년 9월 5일

홈페이지 : http://www.yourkit.com/java/profiler/

Continue Reading

Effective C# 강력한 C#코드를 구현하는 개빌지침 50가지 요약

DarkKaiser, 2010년 3월 8일2023년 9월 6일

1. 데이터 멤버 대신에 항상 프로퍼티를 사용하라.

2. const(컴파일 타임 상수)보다는 readonly(런타임 상수)가 좋다.

컴파일타임 상수는 런타임 상수에 비해 다소 빠르지만 유연성이 떨어진다. 컴파일 타임 상수는 수행성능이 매우 중요하고, 상수의 값이 절대로 바뀌지 않는 경우에 한해서만 사용하는 것이 좋다.

런타임 상수와 컴파일타임 상수의 근본적인 차이는 그 값들이 어떤 방식으로 평가되는가에

Continue Reading
  • 1
  • 2
  • Next

최신 글

  • AssertJ 소개testCompile ‘org.assertj:assertj-core:3.6.2’ 2017년 9월 14일
  • 자주 사용되는 Lombok 어노테이션 2017년 9월 14일
  • 유니코드 #3 2017년 9월 14일
  • 유니코드 #2 2017년 9월 14일
  • 유니코드 #1 2017년 9월 14일

최신 댓글

    카테고리

    • 개인 자료 (1)
      • 일기 (1)
    • 주절주절 (7)
    • 프로그래밍 갤러리 (16)
    • 프로그래밍 언어 (186)
      • Java (29)
      • C/C++/VC++ (114)
      • C# (11)
      • Visual Basic (6)
      • 안드로이드 (9)
      • Objective-C (5)
      • JavaScript (4)
      • JSP/Servlet (2)
      • Python (4)
      • 어셈블러 (1)
    • 개발++ (44)
      • Book (11)
        • Joel On Software (10)
      • 프로젝트 관리 (6)
      • Maven (1)
      • 디버깅 (1)
      • DirectX (1)
      • Silverlight (1)
      • RESTful (1)
      • Hacking (1)
      • WDM (4)
      • VoIP (5)
      • 기타 (1)
    • 개발 도구 (15)
      • eclipse (14)
      • Sublime Text (1)
    • 네트워크 (7)
    • 설치 및 배포 (7)
      • InstallShield (2)
      • NSIS (4)
    • 버전 관리 (9)
      • Git (2)
      • CVS (2)
      • Subversion (5)
    • 데이터베이스 (7)
      • Oracle (3)
      • Sybase (2)
      • MS-SQL (2)
    • 단위테스트 (3)
      • JUnit (1)
      • NUnit (2)
    • 버그추적시스템 (2)
      • mantis (2)
    • 운영체제 (7)
      • Windows (5)
      • 리눅스 (2)
    • WAS (3)
      • WebLogic (3)
    • 디자인패턴 (1)
    • 디지털 이미지 프로세싱 (16)

    태그

    Assert() CImage cvsnt DDK DefaultTraceListener delegate eclipse EventLogTraceListener maven MDI MFC MSDN mutable NAnt new pragma RAW snoopspy std::auto_ptr STLFit STLPort STLTask TCP/IP Thread UNICODE useBean VI volatile watch WinSXS XP테마 기하학 데이터소스 드라이브 마스크 문자열 상수 스레드 스레드 동기화 시간 실용주의 실용주의 프로그래머 자바빈즈 툴팁 패킷

    메타

    • 로그인
    • 엔트리 피드
    • 댓글 피드
    • WordPress.org
    ©2025 DarkKaiser의 블로그 | WordPress Theme by SuperbThemes