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

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

트레이아이콘(Tray Icon) 사라지는 버그 막기

DarkKaiser, 2007년 7월 1일2023년 9월 5일

요즘 나오는 프로그램에서는 대부분 ?TrayIcon을 제공합니다. 단순히 프로그램 리스트(태스크 바)에 나오는 것보다는, ?TrayIcon이 사용자에게 보다 더 편리한 UI를 제공하기 때문입니다. 그런데, 익스플로어(인터넷 익스플로어가 아닙니다.)의 버그 때문에 <그림 1>과 같이 종종 TrayIcon이 Tray에서 사라지는 경우가 있습니다. 하지만, 몇몇의 프로그램은 사라지지 않고 계속 남아있는 경우도 볼 수 있습니다.

<그림 1
Continue Reading

FormView 실행시 최대화

DarkKaiser, 2007년 7월 1일2023년 9월 5일

CMainFrame에서 ClassWizard 로 가상함수 ActivateFrame(int nCmdShow) 추가

void CMainFrame::ActivateFrame(int nCmdShow) 
{
     /* TODO: Add your specialized code here and/or call the baseclass */ 
     nCmdShow=SW_MAXIMIZE;      <-- 코드추가부분.

     CFrameWnd::ActivateFrame(nCmdShow);
}
Continue Reading

툴바에서 256 이상의 컬러 사용

DarkKaiser, 2007년 7월 1일2023년 9월 4일

기존의 리소스는 그대로 두고 ToolBar에 사용할 256색 이상의 Bitmap Image List를 하나 만듬니다. 그리고 나서 CToolBarCtrl의 SetImageList(), SetHotImageList(), SetDisabledImageList()를 이용하면 간단히 256이상의 ToolBar를 만들 수 있습니다. 예제를 참고하세요.

void CToolBar256::SetBitmap(UINT nIDResource, CSize ImageSize, UINT nButton, COLORREF colMask) 
{ 
    CImageList ToolBarImageList; 
    CBitmap ToolBarBitmap; 
    ToolBarBitmap.LoadBitmap(nIDResource); 
    ToolBarImageList.Create(ImageSize.cx, ImageSize.cy, ILC_MASK | ILC_COLORDDB, nButton, 0); 
    
Continue Reading

시스템 에러 메시지 자동으로 알아내기

DarkKaiser, 2007년 7월 1일2023년 9월 5일

Win32 함수 호출이 실패할 때에는 아마 주로 GetLastError()로 오류 번호를 얻고 그 번호를 이용해서 구체적인 오류 메시지를 알아내곤 할 것이다. 그러나 그렇게 하지 말고 그냥 디버거의 감시(watch) 창에 @err, hr 을 넣어보라. 그러면 오류 메시지가 직접 나타나게 될 것이다.

Continue Reading

콘솔에서 프로젝트 파일 빌드

DarkKaiser, 2007년 7월 1일2023년 9월 4일

VC++ 6.0

> msdev.com Test.dsw /MAKE "Test - Win32 Release" /REBUILD

vc++ 7.0 이상

> devenv test.sln /rebuild release
Continue Reading

VC++6에서 최신 MSDN 사용하기

DarkKaiser, 2007년 7월 1일2023년 9월 4일
최신 버전의 MSDN을 VC6의 내장 도움말(키워드에서 F1 눌렀을 때 자동으로 해당 주제의 도움말이 나타나는 방식)로 사용하는 방법입니다.
 
레퍼런스 : Integrate the latest MSDN with VC6 and Hook functions of COM(http://www.codeproject.com/macro/VSNetHelp.asp )
(*** 반드시 PSDK가 설치되어 있어야 합니다. ***)
 
1) 아래의 VC6용 애드인 파일을 다운로드 받습니다.
 
2) VC6용 애드인
Continue Reading

디버그 Watch창에서 vector 내용 확인하기

DarkKaiser, 2007년 7월 1일2023년 9월 4일

STL 를 사용하다보면 어려운 점 중에 하나가 그 내용을 확인하기가 쉽지 않다는 점입니다. 배열을 사용하면 디버그 watch 창에 그 내용물이 보기 쉽게 표시되는데 배열의 STL 대응인 std::vector 를 사용하면 무슨 내용이 vector 저장되어 있는지 디버깅 시 확인하기가 쉽지 않습니다. 다음과 같이 watch 창에 입력하면 std::vector 의 내용을 확인할 수 있습니다.

Continue Reading

IWebBrowser2와 IHTMLDocument2의 상호변환

DarkKaiser, 2007년 6월 30일2023년 9월 5일

1. IWebBrowser2 에서 IHTMLDocument2 인터페이스 구하기

IWebBrowser2 *m_pWebFromUnknown;
IWebBrowser2 *m_pWebFromDoc;

STDMETHODIMP CTestObj::SetSite( IUnknown *pUnkSite )
{
    IOleClientSite *pClientSite;
    HRESULT hr;

    hr = pUnkSite-QueryInterface( IID_IOleClientSite, 
    (LPVOID *)&pClientSite );
    if ( FAILED( hr ) ) return S_OK;

    IOleContainer *pContainer;
    hr = pClientSite-GetContainer( &pContainer );
    pClientSite-Release();
    if ( FAILED( hr 
Continue Reading

자동화에 대한 기본 정리

DarkKaiser, 2007년 6월 30일2023년 9월 3일

자동화(Automation)란?

COM은 언어에 독립적입니다. 따라서 COM 인터페이스로 만든 소프트웨어 컴포넌트은 어떤 언어에서든 사용이 가능합니다.

하지만, 스크립트 언어는 예외입니다. 스크립트 언어는 일반적인 COM 인터페이스에 접근하지 못합니다. 그래서, 스크립트 언어가 이해할 수 있는 IDispatch라는 특별한 COM 인터페이스를 정의하였습니다. IDispatch라는 COM 인터페이스는 스크립트 언어 뿐만 아니라 COM을 지원하는 모든 언어가 사용할 수 있는

Continue Reading

시스템에서 드라이브 추가 혹은 제거되었을 때를 자동으로 감시하는 코드

DarkKaiser, 2007년 6월 20일2023년 9월 4일

출처 : http://www.codeproject.com/useritems/Drive_Detect.asp

시스템에서 플로피/하드/CD-ROM/이동 드라이브가 추가 혹은 제거되었을 때를 자동으로 감시하는 코드입니다. 우선 헤더 파일을 프로젝트에 추가하여 줍니다.

#include <dbt.h

아래의 메시지 핸들러를 추가합니다. 클래스 위저드를 통해서 추가할 수 없으니 수동으로 추가하여 주세요.

bool inline IsBitSet (DWORD64 dwMask, UINT nTHBit) {
    DWORD64 dwBit = 1;
    dwBit <<= nTHBit;
    dwMask 
Continue Reading
  • Previous
  • 1
  • …
  • 10
  • 11
  • 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)

    태그

    Abstract ActiveX AfxParseURL Automation boost devenv.exe event EventLogTraceListener Hover interface IO iTextSharp JAD jar JavaScript Joel Leave MFC Monitor msdev.com MSDN mutable PDF Properties RAW Saturation SHGetFolderPath SHGetKnownFolderPath SQLite STLTask String TextWriterTraceListener URL VI 권한 데이터소스 디컴파일러 문자열 스레드 동기화 스레드 생성 실용주의 프로그래머 자동화 테스팅 파일포맷 프리컴파일

    메타

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