Edit Control에는 WM_COPY라는 메세지가 있는데요, Edit Control에서 WM_COPY를 사용 할 경우 셀렉트된 부분을 복사하게 되지요. 하지만 셀렉트 하지 않고 Edit Control내의 모든 내용을 한번에 복사 할 수 있습니다. 이렇게~ SendMessage(Edit1,EM_SETSEL,0,-1); SendMessage(Edit1,WM_COPY,0,0); EM_SETSEL은 선택 영역의 시작과 끝점을 변경 하는 메세지인데요, wParam으로 시작점, lParam으로 끝점을 전달합니다. wParam에 0, lParam에 -1을 넣으면 전체 선택이에요 :) 아 그리고 wParam이 -1이면 선택영역을 해제하게 된답니다! p.s>Edit Control에 지정된 문자를 샥~ 하고 입력해주고..
분명히 WM_LBUTTONDBLCLK: 라는 더블클릭 메세지가 존재함에도 불구하고 더블클릭 할 경우 실행되지 않아요. 어떻게 해결해야 할까요? 윈도우를 생성할 때 style에다가 CS_DBLCLKS를 추가해 주면 됩니다~~ wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; 이렇게요~ 그리고.. 리스트박스에서 더블클릭 했을때의 메세지는 LBN_DBLCLK:인데.. 이것역시 그냥은 먹지 않아요. 역시나~ 생성할때 스타일에 LBS_NOTIFY를 써줘야 합니다. hList=CreateWindow("listbox",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | LBS_NOTIFY,10,10,300,300,hWnd,(HMENU)..
프로그래밍 되어있는 소스들을 건들다 보면 #ifdef #ifndef #endif #include #define 이런것들을 볼 수 있는데~~ '전처리기'라고 하죠~ #include와 #define은 모두 아실테고.. 나머지 세개를 볼까요? 너무나 쉽습니다 #ifdef STAR //STAR가 define되어 있다면 #define A B #endif #ifndef STAR //STAR가 define되어있지 않다면 #define A C #endif 이게 다에요~ #endif는 반드시 #ifdef또는 #ifndef와 함께 쓰입니다. stdafx.h를 보면 #define WIN32_LEAN_AND_MEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다. // Windows 헤더 파일: #incl..
무효화 영역을 설정할때, 즉 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; else if(tmp == 1) process tmp1; break; WM_LBUTTONDOWN: tmp = 0; InvalidateRect(hWnd,NULL,TRUE); tmp = 1; break; 자~ 마우스 왼쪽 버튼을 클릭할 경우 process tmp0이 처리될까요? 아니면 process t..
1. Drum - 반복이 많은 곡이라면 드럼킷에 다른 '여러가지 타악기'를 섞으면 훨씬 많은 변화를 줄 수 있다.(마라카스, 봉고 등등) - reverse Cymbal : 벨로시티가 올라가며 '치익~'하는 심벌 2. Bass - 레가토(이음줄) 기능으로 모두 붙이기 보단, 띄울 곳은 띄어서 '리듬감'을 살려라. - 끝에 간결한 반주로 조용히 끝나는 곡에서, 베이스를 쉬다가 맨 마지막 음에만 깔아주면 분위기가 한결 좋다.(이태윤씨가 자주 쓰시는 방법) - ex.) 화려하게 나가다가 끝에 피아노와 보컬만 들어가고 마지막에 베이스 깔아줌. 3. 중간에 "Break"를 잘 걸어라. 곡이 진행되다가 갑자기 멈춘듯한 느낌. - 듣는이는 마음속으로 리듬을 세면서 다음에 나올 부분을 기대하게 된다. - ex.) 리듬 ..
동적으로 major number를 할당하고 device node를 생성하는 script~ #!/bin/sh module="scull" device="scull" mode="664" # 스크립트로 전달한 모든 argument를 가지고 insmod를 호출한다. /sbin/insmod -f ./$module.o $* || exit 1 # 기존에 존재하던 node를 제거한다. rm -f /dev/${device}[0-3] # /proc/devices 파일로 부터 major number를 읽어온다. major=`awk "\\$2==\*$module\" {print \\$1}" /proc/devices` # sed를 사용한 예제. # major=`sed -ne "/$module/s/ *\(.*\) *$module/..
메모리DC를 생성하고 바로 BitBlt로 hdc에서 memDC로 옮기면 옮겨지지 않습니다. 이유가 뭘까요~? MemDC는 생성직후의 크기가 1x1이기 때문이지요~ HBITMAP hBit; HDC hdc, hMemDC; WM_CREATE: hdc = GetDC(hWnd); hBit = CreateCompatibleBitmap(hdc,1024,768); hMemDC = CreateCompatibleDC(hdc); SelectObject(hMemDC, hBit); 이렇게 CreateCompatibleBitmap으로 HBITMAP을 생성해 준 후, SelectObject로 MemDC를 선택해주면 크기가 HBITMAP의 크기로 설정됩니다~ 다만 배경이 검은색으로 차기 때문에 흰색으로 채워줘야겠죠???
- Total
- 854,497
- Today
- 3
- Yesterday
- 159
- db
- 드라이버
- driver
- jni강좌
- database
- 안드로이드
- AWS
- winapi
- jni
- it
- java
- Python
- Troubleshooting
- 리눅스
- Cloud
- Quiz
- NDK
- 음악
- algorithm
- C
- kering
- android
- MFC
- API
- source
- linux
- 프로그래밍
- gcc
- Visual C++
- C++