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

[카테고리:] C/C++/VC++

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

투명 PNG 파일 로드하고 화면에 그리기…

DarkKaiser, 2010년 3월 3일2023년 9월 4일

GDI+를 이용하여 PNG 파일을 로드하고 화면에 그리는 방법…

// PNG 드로잉
Graphics G2(dc.GetSafeHdc());
G2.DrawImage( m_bitmap, 60, 60 , m_bitmap-GetWidth(), m_bitmap-GetHeight() );
// PNG 파일 로드
Bitmap* Cpng_test1Dlg::PngFromResource(IN HINSTANCE hInst, IN const LPTSTR pName, IN const LPTSTR pType )
{
  Bitmap* bitmap = NULL;
  HRSRC hResource = ::FindResource(hInst, pName, 
Continue Reading

Microsoft Visual C++ 2005 & 2008 재배포 가능 패키지 다운로드 페이지…

DarkKaiser, 2009년 9월 27일2023년 9월 4일
Microsoft Visual C++ 2005 재배포 가능 패키지(x86)
Microsoft Visual C++ 2005 재배포 가능 패키지(x64)
Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x86)
Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x64)
Microsoft Visual C++ 2008 재배포 가능 패키지(x86)
Microsoft Visual C++ 2008 재배포 가능 패키지(x64)
Microsoft Visual C++ 2008 SP1 재배포
Continue Reading

Visual C++에서 프로젝트 작성시 ‘자동화 서버는 객체를 작성할 수 없습니다.’ 에러 발생시 해결책..

DarkKaiser, 2009년 9월 17일2023년 9월 6일

출처 : http://esperanca.kr/tag/자동화%20서버는%20개체를%20작성할%20수%20없습니다.

Visual Studio 2003.NET, Visual Studio 9.0 Express Edition 등의 개발환경에서 ‘자동화 서버는 객체를 작성할 수 없습니다.’라는 에러가 프로젝트 작성시 뜨고는 한다.
기본적인 함수와 주석이 포함되어 있는 스크립트인데 간혹 환경이 다른 운영체제의 애플리케이션을 개발하곤 할 때 일어난다.
필자는 XP인데 스크립트 파일이 깔려있지 않아서 문제를 겪었다.
해결책은 다음과 같다.
Continue Reading

ChangeWindowMessageFilter – Vista 에서 메시지(WM_COPYDATA등) 보내기

DarkKaiser, 2009년 9월 12일2023년 9월 6일

비스타에서는 UAC가 동작하고 있을때 권한이 낮은 어플리케이션에서 높은 어플리케이션으로 메시지가 전달이 안된다.

여러 사이트 검색결과 ChangeWindowMessageFilter를 이용하면 된다는 것을 알게되었다.

typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)(
  UINT message,
  DWORD dwFlag
);

를 선언부에 선언하고,

HANDLE popapi;
CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter;

popapi = LoadLibrary("USER32.DLL");
ChangeWindowMessageFilter=(CHANGEWINDOWMESSAGEFILTER)GetProcAddress((HINSTANCE)popapi,"ChangeWindowMessageFilter");
ChangeWindowMessageFilter(WM_COPYDATA,1);

하면 됩니다.

ChangeWindowMessageFilter에서 MSGFLT_ADD를 사용하면 해당메세지를 받아들이게 되고,
REMOVE를

Continue Reading

__SetForegroundWindow

DarkKaiser, 2009년 8월 24일2023년 9월 5일

출처 : Application Hacking

::SetForegroundWindow(), ::SetFocus()아 같은 API를 호출해서 프로그램 상에서 간단하게 상위 윈도우를 변경하거나 입력 포커스를 지정할 수 있지만, 이는 사용자가 마우스로 윈도우를 선택하거나 Alt+TAB, Alt+ESC를 입력해서 상위 윈도우를 지정하는 경우와는 다르게 동작한다.
::SetForegroundWindow(), ::SetFocus()등의 API를 호출하는 스레드가 현재 입력을 처리하고 있는 상위 스레드가 아니라면, API에 의해서 설정된 윈도우는

Continue Reading
  • Previous
  • 1
  • …
  • 3
  • 4
  • 5
  • …
  • 12
  • 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)

    태그

    ArrayList BMP CAB CAB 파일 CD-ROM COM DCOM Downcasting Encoding for each GetLastError() IHTMLDocument2 InstallShield Internet Explorer JDT LinkedList Lokbok netsh OCX Python SAX setup SVN toolbar TR1 unicows Upcasting VisualStudio WAVE XP 테마 내장 객체 다국어 레이아웃 로그 리소스 리팩토링 바이트 스트림 배열 버전관리 서브클래싱 스트림 시스템 에러메시지 유니코드 임시파일 입력 스트림

    메타

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