MFC 팁...!
WindowsPrograming :
2007. 3. 11. 02:20
반응형
- 트레이 아이콘(Tray Icon) 사라지는 버그 막기
- 매핑 모드 사용하여 확대 축소 구현하기
- 인터넷 익스플로어 제어와 관련된 Knowledge Base
- 선택 영역에 줄번호 붙여주는 매크로
- Web으로부터 컨트롤을 다운받아서 실행하는 VC예제
- 현재 작업중인 프로젝트의 폴더를 열어주는 매크로
- 로컬 폴더에 있는 DLL 사용하게 만들기
- Dialog Base 프로그램을 Tray에 등록할 때 문제점
- FlashWindow를 사용하여 내 프로그램의 존재를 알리자
- 자신의 IP 얻기
- 스플리터 윈도우 위치 고정하기
- Dialog Box의 Control에 Tooltip넣기
- 타이틀 바가 없는 프로그램에 아이콘을 나오게하는 법
- 슈퍼 클래싱과 서브 클래싱
- 마지막 에러코드 Watch창으로 나타내기
- 네트웍 어드레스 변환 방법
- CWinApp에서 명렁어 인자 분석 방법
- ToolBar에서 256이상의 Color사용
- 특정 확장자명으로 프로그램 실행시키기
- Volatile
- 어셈블된 코드 보기
- ATOM을 이용한 프로세스간 데이터 공유
- WM_COPYDATA 를 사용한 메세지 전송
- TrackMouseEvent 구현하기
- 필요없는 warning 은 보기 시러~~
- 파일의 특정 부분의 warning level을 지정하기
- CFileDialog에서 초기 경로명 지정하기
- 256색 이상의 Bitmap ImageList 만들기
- List Control 에 다른 Control 넣기
- 초 간단!! 시스템 이미지 리스트 얻어오기
- CStringArray 정렬하기
- MFC Dialog Box에서 자신의 Class Name설정
- 사용자 정의 Common Dialog 만들기
- 사용자 정의 Common Dialog에서 Common Dialog자원의 위치 설정
- 자기 프로세스의 복사본을 만드는 방법
- 일반적인 Child Window 만들기
- CSocket 과 CAsyncSocket에서 Thread문제
- SearchPath()의 리턴값 알아보기
- 화면 캡쳐 소스
- Dll에 breakpoint 설치하기
- 윈앰프처럼 TaskBar와 SystemTray 마음대로 주무루기
- Winamp 처럼 벽에 붙이기
- Title바 마음대로 하고 싶나요?
- Toolbar안에 다른 Control넣기
- 문자열 검색 API
- 자신만의 윈도 class name을 가지자
- Coverage가 90% 이하면 안돼요~~~
- _ASSERTE 가 GetLastError()를 망친다
- Explorer처럼 툴바에 Text 넣기
- MDI(Multiple Document Interface) application에서 초기 뷰 없애기
- Dll 찾는 순서
- DLL 파일의 이름 알아보기
- 메인 프래임 윈도우에 얼굴을 부여하기
- Break Pointer 는 INT 3 으로 통한다!!
- 두 변수의 값을 바꾸는 환상의 매크로
- 안전하게 free, delete하는 방법
- 윈도에 포커스가 가지 못하게 하기
- TreeCtrl 에서 Context Menu 사용하기 -번역은 나중에
- 랭귀지 팩을 만들자!!
- Visual C++ 이 만드는 파일의 의미
- 툴바에 Dropdown버튼 넣기
- VC++의 Quick Macro
- VC++에서도 Regular Expression으로 검색할 수 있다
- Dll에서 제공되는 함수들 보기
- 공유 섹션 만들기
- 화면 보호기 제어하기
- 바탕화면, 즐겨찾기, 내 문서 등의 패스얻기
- CAsyncSocket 에서 도메인 주소 바로 사용하기
- bool과 BOOL의 차이
- TRACE를 잠깐 못쓰게 만드려면
- DirectX에서 리턴값 확인은 FAILED매크로를 사용하도록 하자
- DirectDraw에서 Control Box 사용하기
- CFrameWnd가 아닌 윈도우에서 툴바의 툴팁 출력하기
- Dialog Bar 만들기
- Toolbar에 버튼 추가하기
- 화면 정보 얻어오기
- 절전 기능 및 화면 보호기 제어하기
- 절전 모드로 진입을 거부하는 방법
- Console 프로젝트와 Windows 프로젝트 바꾸기
- Ansi 문자열과 Unicode 문자열 바꾸기
- 문자열을 _T() 형으로 바꿔주는 매크로
- Resource ID 이름 짓는 방법
- Little or Big Endian
- Alt+F4 키로 종료되는거 막는 방법
- 프로그램내에서 한/영 전환하기
- pair 라는 것의 용도는?
- WORD 특정 비트값 알아내기
- 일반적인 윈도우 소멸 순서
- 메모리 DC 사용하기
- DirectDraw에서 256색 Bitmap 간편히 사용하기
- Source Safe과 Project를 분리시키기
- 실수(소수점) 나누셈 연산을 정수 연산으로 하기
- 프로그램안에서 Registry 이름 지정하기
- 특정 Registry Key안의 Value값 가져오기
- Registry에 File Icon등록해주기
- '객체 삽입' 상자 없이 객체 삽입하기
- 윈도우즈 강제로 종료하기
- 재밌는(?) 시스템 강제로 다운시키기
- Document없는 CRichEditView에 Ole객체 삽입 막기
- 비교 연산자를 위한 예약어들
- Dialog Based 프로그램에서 가속키 기능 넣기
- 투명한 윈도우 만들기 (w2k만)
- 현재 실행되고 있는 자신의 경로와 파일명 가져오기
- 프로그램 한번만 실행하기
- MFC 모듈의 상태 데이터 관리하기
- Dialog Based 프로그램에서 '최근 사용한 파일 목록' 메뉴 넣기
- Override를 통해 잃어버리는 것들
- 특정 파일의 Property 창 띄우기
- Serialize를 이용한 객체 복사하기 (Copy constructor)
- CWinThread로 UI Thread 만들기
- Socket에서 완벽한 Receive처리
- [API/SHELL] 디스크 복사 및 포맷...
- [API/SHELL] 프로그램 추가 삭제 / 원도 구성 요소 추가 다이얼로그 띄우기
- 원하는 확장자파일만 지우기
- CEdit control의 font 바꾸기
- 연결 프로그램 찾기 다이얼로그 띄우기
- Visual Basicⓡ처럼 property 다루기
- Func()
- [ATL] 새로운 인터페이스 추가하기
- 생성자 두 번 호출되는 버그
- LastError를 보여주는 Debugging Trace Macro
- 할당된 블록의 크기 구하기
- [Win32/C++]템플릿을 이용한 동기화 클래스 만들기
- Visual Studio Macro
- auto_ptr
- explicit
- Unicode/MBCS(DBCS)/ANSI/TCHAR
- String Conversion Macro
- upper_bound/lower_bound
- stringstream
- CD Rom 드라이브 구하기
- WebBrowser 로 부터 키보드 메세지 가로채기
- CDROM Insertion / Removal 감지하기
- 입력 컨트롤에서 허용하는 문자를 제한하려면
- History ComboBox
- HBITMAP을 BMP 파일로 만들어 주는 함수
- FTP 로 파일 전송하기
- ATL Browser - SmileBrowser v0.1
- 레지스터 설명
- 어셈블러 쉽게 쓴 강좌
- 내가 만든 타입 자동으로 확장하기
- watch 창에서 심볼의 출력 타입 정해주기
- Thread 생성시 어떤 API를 사용해야 하는가?
- LAN에 연결된 모든 스테이션에 broadcasting하기
- ActiveX를 무조건 다운로드 하게 하기
- ATL Debugging Support #1
- 웹페이지가 이동될때 진입하는 함수
- GetMessage() PeekMessage()
- based addressing
- 다이얼로그 리소스의 실제 크기 얻기
- 문자열에서 드라이브,디렉토리,파일이름, 확장자 정보 가져오기
- Bitmap 이미지 resizing 하기
- 프로파일링(Profiling) 기능 활용하기
- template으로 구조체 초기화 하기
- 사용하지 않는 인자에 대한 warning 없애기
- 포인터 변수를 검증하기위한 매크로
- #define 보다는 const와 inline을 사용한다.
- malloc과 free 보다는 new와 delete를 사용한다.
- 메모리가 모자랄 경우에 대비한다.
- operator new 와 operator delete 작성시 관례를 따른다.
- 캐럿의 위치 알기
- URL을 파싱하자
- Lite control에서 이벤트가 가능하게 하기
- 소스로 바로가는 TRACE
- Watch 창에서 함수 실행하기
- 파일로 트레이스 하도록 바꾸기 (3줄이면 됨)
- MFC에서 NULL을 비교하는 것은 의미가 없다.
- Floating-Point Error가 Exception을 발생하도록 만들기
- First-chance exception 에서 Stop 하도록 만들기
- exception 클래스 확장하기
- INF file Architecture
- GUID 생성하기
- VC의 IDE를 편하게 쓰는 도구[1]
- VC의 IDE를 편하게 쓰는 도구[2]
- new의 정상 형식을 감추지 않는다.
- operator new를 작성한다면 operator delete도 작성한다
- 동적으로 할당되는 메모리를 갖는 클래스를 위해서는 복사 생성자와 치환 연산자를 선언하라.
- 생성자에서 치환보다는 초기화를 사용한다.
- 클래스에 선언된 순서에 따라 멤버 초기화 리스트에 멤버들을 나열한다
- Edit 컨트롤에서 Tab 키 넣기
- [VB] QueryInterface하는 방법
- [ActiveX] VBScript에서는 QueryInterface가 않된다.
- [ActiveX] VBScript에 User-Define Interface 노출하기
- ATL 디버깅 정보 출력하기
- [ActiveX] 키보드 메세지 받기
- OLE Activation 될때 컨테이너의 툴바 살리기
- 인터넷 Short-Cut 만들기
- StrouStrup의 좋은 기사 3개 Link
- WTL 3.1
- WTL 도움말
- CreateFile 이용시 주의사항
- DLL 로드 시간 성능 최적화 하기
- GUID를 문자열로... 문자열을 GUID로
- 트레이 메뉴가 사라지지 않을때
- 대용량의 파일 순식간에 읽기
- Error LNK2001: '_WinMain@16': Unresolved External Symbol
- Hatch 가 밀려나오는 브러시 수정하기
- Brush 의 패턴을 사용하여 스킨 구현하기
- ATL Object가 한글 폴더 있으면 등록 안되는 버그
- ActiveX 컨트롤에서 사용할 디지털ID 발급 받는 방법
- [VB] 패키지 마법사 최적화 하기
- MFC 라이브러리에 동적으로 링크된 정규 DLL
- 원격 디버깅 하기
- 왼쪽에 이미지 들어가는 메뉴추가하기
- 2000 에서 나오는 파일 저장 다이얼로그 사용하기
- 콤보박스나 에디터 상자에서 입력 자동 완성 기능
- 폴더내의 dll 한 번에 등록하기
- 폴더 선택 다이얼로그 사용하기
- 윈도우즈 작업 관리자 기능 살펴보기
- Delayload 적용시키기 (매우 쉬움)
- Dll Rebase 시키기 (역시 쉬움)
- Win32 버퍼 오버플로어 관련 문서
- local folder에 있는 dll 사용하게 만들기
- ActiveX Control을 View에서 사용하기
- Web으로부터 컨트롤을 다운받아서 실행하는 VC예제
- 인터넷 익스플로어 제어와 관련된 Knowledge Base
- w2k에서 Process Tree 보기
- 줄번호 매겨주는 매크로 입니다.
- DbgChooser from Bugslayer
- 특정 컨트롤에서 한글을 입력받고 싶지 않을때
- 홈페이지 소스 가져오기
- OPCODE 설명서
- ASCII 코드 설명서
- inline assembly에서는 C++맴버변수로 접근 불가
- Unicode Conversions in Visual C++
- 실행 파일(바이너리)에서 파일 이름 가져오기
- 디버깅 관련 KB(Knowledge Base) 모음집
- 디버깅 관련 책 정보
- Coding Techniques and Programming Practices
- The Basics of Programming Model Design
- [ActiveX] automation을 편하게 쓰는팁
- IME 입력기 예제입니다.
- 특정 DLL 을 사용하는 프로그램 알아보기
- [ATL] 나한테 연결했나?
- 인터넷에 연결되어 있는지 알아보기
- 파일 사이즈 별로 단위를 나누어서 출력하기
- 아스키 코드의 재미난 연산
- 이런 코드는 피하고 싶다
- 윈도우가 리사이즈될때 다시 그려야 하는 영역 얻기
- Visual C++ 이 사용하는 확장자 살펴보기
MFC(Microsoft Foundation Class)
- 함수의 호출 규약에 대해서 알아봅시다
- WaitCursor가 만들어지지 않는 경우
- Capture가 되지 않는 경우
- Queue를 함께 씁시다
- SendMessage는 어떻게 작동하는가?
- 친절한 메세지 ( benign message )
- 복잡한 ActiveX Control 라이센스 간단히 얻기
- LHCTRACE( light-weight!!!)
- LHCTRACE
- Advanced Breakpoint
- DECLARE_DYNCREATE()와 IMPLEMENT_DYNCREATE()
- TLS(Thread Local Storage)
- CreateWindow()
- Top 윈도우들의 핸들을 알수 없을까?
- 호출 관행
- C++에서 Internal Linkage를 갖는 몇 가지
- 배경이 투명한 Bitmap 그리기
- VC++에서 RTTI 사용하기
- OLE를 이용한 Drag and Drop
- 콜백함수의 구현
- 프로세스의 초기화와 종료 기다리기
- 향상된 RichEdit control (RICHEDIT20A)
- PowerPoint 파일을 Image 파일로 변환하기
- 실행파일 또는 DLL에서 파일버전 정보를 가져오는 방법
- CEdit - 리소스에서 파일을 여는 방법
- IPicture를 이용한 JPG, GIF, BMP, WMF, EMF, ICO 보기
- Child윈도를 Popup시키는 방법
- Set Next Statement 를 통해서 디버깅 하기
- 스레드에 이름 지어주기
- 툴바의 툴팁을 내가 원하는데로
- 정렬과 탐색 루틴이 필요하신 분
- 데이터 암호화 방법
- Dialog Base에 UpdateCommandUI Handler를 달자.
- Popup Menu에 UpdateCommandUI handler동작 시키기
- 함수대신 function object를 대입하자
- koenig lookup
- Win32 multithreading Performance
- 실행중인 자신의 파일의 fullpath를 정확히 알아내기
- ATL에서 error LNK2001: unresolved external symbol _main 해결하기
- Winsock 2.0 에 관련된 몇가지 것들
- Winsock 2.0의 단점들
- none MFC에서 memory leak난 부분 찾기
- ATL - warning MIDL2039 의 버그
- apartment간의 marshaling
- apartment 모델에 관한 이야기
- #File Error#
- DLL 에 대해서 알아보자.
- Simulating Dynamic Binding
- HANDLE 의 정체!!
- 특정 URL의 파일을 다운로드하기
- dll을 모든 프로세스에 로드시키기
- 특정 Port 가 사용중인지 알아보는 방법
- 스택에 동적으로 메모리 할당하기
- ActiveX 컨트롤로부터 URL 알아내기
- 프로그램의 수행 속도를 개선하는 방법
- 힙: 장점과 단점
- socket을 옳바르게 닫기
- release 에서 _set_new_handler() 가 동작하지 않는 경우
- Windows Structured Exceptions을 C++ Exceptions로 바꾸기
- if문을 사용한 경우와 Exception handling을 사용한 경우의 비교
- dispinterface의 특성
- 치명적인 오류가 발생하였을 때 프로그래머에게 알리기
- API hooking ( Dll 바꿔치우기~)
- 메모리 패킹
- VC++ 에서 OCX 내의 함수 직접 호출하기
- ActiveX 컨트롤 사용하지 않고 프로그램 실행하기
- ActiveX 컨트롤 설치할때 inf 파일에서 dll 순서 중요
- C 에서 최적화된 프로그램 만들기
- regsvr32.exe 를 사용하여 ActiveX 컨트롤 등록시 주의점
- PHP나 ASP 코드 직접 호출하기
Advanced
반응형
'WindowsPrograming' 카테고리의 다른 글
vc++ mfc에서 CRichEdit 클래스에서 폰트색 변경 방법 (0) | 2007.03.11 |
---|---|
MFC 요점 강의 (0) | 2007.03.11 |
[MFC로 구현하는 DB 프로그래밍] ② DB의 다리 ODBC (0) | 2007.03.11 |