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)

    태그

    ATL BMP CAB COM Downcasting enum GetLastError() interface IO Java JavaScript JDT Joel JoelOnSoftware Leave Monitor msdev.com NUnit Saturation shared_ptr StringBuffer StringBuilder Subverion SVN URL Vista weak_ptr WebClient Wrap 내장 객체 레이아웃 마우스 문자 스트림 바이트 스트림 배포 비스타 빌드 서브클래싱 오피스파일구별 익명클래스 자동화 조건부 컴파일 지역클래스 타입 라이브러리 테스팅

    메타

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