목록컴퓨터 IT (698)
바람이 머문 언덕
GetCursor 함수를 이용해서 커스 모양을 얻어 올 때 다이렉트 x와서와 같이 사용자가 만든 커스 일 경우 일정한 모양만 반환해서 마우스 커스가 변경 되었는지 알기 힘들 때 커스의 모양이 바뀌었는지 알기 위해서 만든 함수로 커스의 특정 위치의 색을 반환 합니다. COLORREF GetCursorColor(int x, int y) // 색의 위치를 얻기 원하는 마우스 커스의 아이콘의 좌표를 전달 { CURSORINFO ci; ICONINFO ii; COLORREF rgb = 0; ci.cbSize = sizeof(CURSORINFO); // 커서 정보를 구하기 위해서 반드시 세팅해야 한다 if(GetCursorInfo(&ci)) { GetIconInfo(ci.hCursor, &ii); // 커서에 해당..
MFC에서 만든 특정 윈도우의 화면을 캡처하기 위해서 만든 함수입니다. 캡처 할 범위를 전달 해주면 지정 윈도우에서 그 범위의 화면을 캡처해서 char형 포인트로 반환하는 함수 입니다. char* Capture(HWND hwnd, int x, int y, int width, int height) // 윈도우 화면 캡처 { CDC dc, SDC; char* buf = new char(width * height * 4); // 32bit CBitmap bmp, * pbmp; //ScreenDC.CreateDC(L"DISPLAY", NULL, NULL, NULL); SDC.m_hDC=::GetDC(hwnd); dc.CreateCompatibleDC(&SDC); // DC에 관련하는 디바이스와 호환성 있는 메모..
인라인 함수는 일반 함수처럼 함수를 만들고 놓고 필요 할 때마다 호출해서 사용하는게 아니라 함수를 호출한 자리에 함수 코드를 끼워 넣어 속도 향상을 목적으로 사용 한다. 그런나 인라인 함수로 선언해도 컴파일러가 함수의 길이가 길거나 처리하는 내용이 복잡한 경우에는 그냥 보통 함수처럼 처리하는 경우도 있다. inline int max(int a, int b) { return (a < b) ? -1 : ( a == b) ? 0 : 1 ; } int main( void) { int a = 3; b = 5 , c = 0; c = max(a, b) < 0 ? b: (a == b) ? 0 : a ; return c: } 위와 같이 선언을 해주었을 때 max 함수를 main 함수에서 호출하는게 아니라 max 함수의 ..
mouse_event 함수는 특정 윈도우가 아닌 활성화 된 윈도우로 이벤트 메세지를 보내는 저 레벨 함수 입니다.
템플리트 기능이란 데이터 타입만 다를 뿐 골격이 동일한 경우에 사용하면 편리한 기능이다. template int function(T i, T k) { return (i < k) ? 1 : 0; } 위에 처럼 만들어 놓으면 다른 여러가지 형을 데이터에서 사용 할 수 있다. int형에서 사용하고 싶으면 int function(int i, int k); , long 형의 데이터를 사용 한다면 int function(long i, long k); 라고 플로토 타입을 적어 주면 된다. 두 개다 동시에 적어도 된다. 그리고 template 함수는 라이블리 함수로 만들 수 없다. 소스 형태로 포함 되어야 한다. template 클래스는 기능을 클래서에 적용해서 좀 더 큰 효과를 기대 할 수 있다. 선언 하는 형식이 ..
// 리스트는 많이 사용하는 데이터 구조라 template 기능과 함수 포인트를 이용해서 만든 더블 리스트 입니다. // 비교 함수와 노드 삭제 함수를 클래스 만들어서 클래서 생성시 전달 해주어야 합니다. // template 기능을 사용하는 함수는 라이블리 파일로 만들 수 없고 소스 형태로 포함 되어야 합니다. //예) struct data{ int day; char *memo; long money; long balance; unsigned long code; } ; // struct node{ node *prev; data *dt; node *next; } ; // static int cmpdata(data* n, data* d) // { return (n->day==d->day) ? 0 : (n->..
윈도우 창태바가 없는 윈도우에서 윈도우를 이동 시키기 위해서 api 함수를 이용해서 만든 클레스 입니다. #include class movewindow { public: movewindow(); ~movewindow(); void bottonup(); void move(int x,int y); void bottondown(int x, int y,HWND h); private: bool ifla; HWND hwnd; int poxy, poxx; }; movewindow::movewindow() { hwnd=NULL; ifla=FALSE; } movewindow::~movewindow() { } void movewindow::bottondown(int x, int y,HWND h) { if(!ifla) { ..
c언어의 문자열 관련 함수들을 흉내어 보았습니다. void ncma(char *sfc) // 숫자 3자리 마다 ',' 찍어 주는 함수 { unsigned int m,m1,i,p=0,k=0,cl=0; if(sfc[0]=='-') p=4; while(sfc[cl]!='\0') cl++; i=cl; m=cl/3+i; if((m1=cl%3)==0){m--;m1=3;} else if(p==4&&m1==1){ m1=4; m--; } sfc[m--]=sfc[i--]; while(m>m1) { sfc[m--]=sfc[i--]; if(k++==2) { sfc[m--]=','; k=0; } } } void Nstrcopy(char *buf1, char *buf2) // buf1에 buf2를 복사 { int i=0; do ..