일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 |
- C
- API
- 드라이버
- kering
- UI
- sqlite3
- it
- gcc
- jni강좌
- Quiz
- NDK
- Visual C++
- Python
- 프로그래밍
- C++
- linux
- database
- winapi
- 음악
- db
- driver
- Troubleshooting
- source
- 리눅스
- jni
- control
- java
- 안드로이드
- MFC
- android
- Today
- 23
- Total
- 585,907
목록winapi (11)
JHB의 프로그래밍 삽질기
변수 명명법 cb Count of Bytes 바이트 수 dw double word long형 정수 h handle 핸들 sz Null Terminated NULL 종료 문자열 ch Character 문자형 a Array 배열 ..
#include <stdio.h> #include <windows.h> #include <process.h> /*for _beginthreadex, _endthreadex*/ #pragma comment( lib, "ws2_32" ) unsigned WINAPI ThreadFunction(void* arg); int main(int argc, char** argv) { HANDLE hThread; &nbs..
WM_MOUSEWHEEL은 그냥 선언한다고 되지 않아요.windows.h안의 WM_MOUSEWHEEL부분의 정의를 보면#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)#define WM_MOUSEWHEEL 0x020A#endif이렇게 되어있습니다.따라서 stdafx.h에 보통..
제작환경Visual Studio 2005C++/Win32 API그림을 확대/축소할 때 스무스하게 이루어지도록 코딩했습니다.더블버퍼링 예제로도 도움이 될거에요. 감사합니다.주요코드 case WM_TIMER: switch(wParam) { case 1: if(nSampleWidth != nDestWidth) { if(bZoomMode) ..
http://www.winapi.co.kr 의 '더블 버퍼링' 강좌 부분에서 가장 눈에 띄는 부분. 이 코드에서 흔히 오해하기 쉬운 것이 있는데 메모리 비트맵인 hBit와 메모리 DC인 hMemDC와의 관계이다. GDI 출력 함수들은 반드시 DC 핸들을 요구하며 비트맵에 출력하기 위해서는 이 비트맵을 선택하고 있는 메모리 DC의 핸들이 필요하다. 그래서 화면 DC와 호환되는(=비트맵과 호환되는) hMemDC를 생성하고 여기에 비트맵을 선택한 후..
Edit Control에는 WM_COPY라는 메세지가 있는데요,Edit Control에서 WM_COPY를 사용 할 경우 셀렉트된 부분을 복사하게 되지요.하지만 셀렉트 하지 않고 Edit Control내의 모든 내용을 한번에 복사 할 수 있습니다.이렇게~ SendMessage(Edit1,EM_SETSEL,0,-1); SendMessage(Edit1,WM_COPY,0,0);EM_SETSEL은 선택 영역의 시작과..
분명히 WM_LBUTTONDBLCLK: 라는 더블클릭 메세지가 존재함에도 불구하고 더블클릭 할 경우 실행되지 않아요.어떻게 해결해야 할까요?윈도우를 생성할 때 style에다가 CS_DBLCLKS를 추가해 주면 됩니다~~wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; 이렇게요~그리고.. 리스트박스에서 더블클릭 했을때의 메세지는 LBN_DBLCLK:인데.. 이것역시 그냥은 먹지 않아요.역시나~ 생성할때 스타일에 L..
프로그래밍 되어있는 소스들을 건들다 보면#ifdef#ifndef#endif#include#define이런것들을 볼 수 있는데~~ '전처리기'라고 하죠~#include와 #define은 모두 아실테고..나머지 세개를 볼까요? 너무나 쉽습니다#ifdef STAR //STAR가 define되어 있다면#define A B#endif#ifndef STAR //STAR가 define되어있지 않다면#define A C#endif이게 다에요~ #endif는 반드시..
무효화 영역을 설정할때, 즉 WM_PAINT를 호출하기 위해 주로 쓰는 명령어는~~ BOOL InvalidateRect(HWND hWnd, CONST RECT *lpRect, BOOL bErase); 인데 자~ 다음같은 명령을 한번 처리해보도록 하죠 static int tmp=333; //333은 0이나 1이 아니도록 아무거나 써준 숫자랍니다. WM_PAINT: if(tmp == 0) process tmp0; el..
메모리DC를 생성하고 바로 BitBlt로 hdc에서 memDC로 옮기면 옮겨지지 않습니다. 이유가 뭘까요~? MemDC는 생성직후의 크기가 1x1이기 때문이지요~ HBITMAP hBit; HDC hdc, hMemDC; WM_CREATE: hdc = GetDC(hWnd); hBit = CreateCompatibleBitmap(hdc,1024,768); hMemDC = CreateCompatibleDC(hdc); &nb..
내가 고등학교 1학년때 WINAPI를 처음 접했을 때, 가장 몰랐던 것이 lParam과 wParam에 관한 것이었다.(지금 생각해 보면 참 웃기다.) 둘을 왜 굳이 따로 쓰는거여!!? 일단, 도대체 여기저기서 발견 되는 wParam과 lParam은 무엇인고?? 아주 쉽게 생각해서! 기본(default)으로 지정 되어 있는 기본 인자! 라고 생각하면 된다. 우리가 MOUSE를 컨트롤 하기 위해 메세지에서 WM_LBUTTONDOWN을 받았다고 하면, ..