디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형아들 API질문좀

API(219.251) 2010.09.18 17:36:28
조회 338 추천 0 댓글 1

#include <windows.h>
#include <tchar.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass=TEXT("Notepad v1.0");

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
     ,LPSTR lpszCmdParam,int nCmdShow)
{
    HWND hWnd;
    MSG Message;
    WNDCLASS WndClass;
    g_hInst=hInstance;
    WndClass.cbClsExtra=0;
    WndClass.cbWndExtra=0;
    WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
    WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    WndClass.hInstance=hInstance;
    WndClass.lpfnWndProc=WndProc;
    WndClass.lpszClassName=lpszClass;
    WndClass.lpszMenuName=NULL;
    WndClass.style=CS_HREDRAW | CS_VREDRAW;
    RegisterClass(&WndClass);
    hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    NULL,(HMENU)NULL,hInstance,NULL);
    ShowWindow(hWnd,nCmdShow);
    while (GetMessage(&Message,NULL,0,0)) {
    TranslateMessage(&Message);
    DispatchMessage(&Message);
    }
    return (int)Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
    HDC          hdc;
    PAINTSTRUCT  ps;
    static TCHAR str[10][100];  //그 전줄에 있던 정보또한 가지고 있어야 되므로 2차원 배열로 계산
    static int line_count = 0;  //행
    static int row_count = 0;   //열
    static int ypos = 0;    //y값 조절
    int tempypos = 0;
    static int tempRow_count[10];

    //문자열 개수 출력을 위한 변수들
    int charNum = 0;
    TCHAR charNumbuf[30];

    switch (iMessage) {
  case WM_CREATE:
  break;

  case WM_CHAR:
  switch(wParam)
  {
  //<- 키가 눌렸을 때
  case VK_BACK:
  if(row_count == 0 && line_count != 0)
  {
      //그 전 줄에서 몇자까지 입력했었는지 정보 얻어옴
      line_count--;
      row_count = tempRow_count[line_count];
      ypos -= 20;     
  }
  //처음이라면 <-키 무시
  else if(line_count == 0 && row_count == 0)
  {
      break;
  }
  str[line_count][--row_count] = NULL;

  //지우고 다시 그리도록
  InvalidateRgn(hWnd, NULL, TRUE);
  break;

  case VK_RETURN:
  //10줄 입력했으면 더이상 안넘어가도록
  if(ypos == 180)
      break;

  //99자까지 입력하지 않고 엔터키로 개행했을 때 그 전 줄에서 몇자까지 입력받았는지 정보를 담아놓은 후
  //<-키로 문자 삭제 시 그 정보를 사용해 전 줄로 이동해서 그 위치부터 삭제되도록
  tempRow_count[line_count] = row_count;

  row_count = 0;
  ypos += 20;
  line_count++;
  break;

  default:
  //10번째 줄에서 99자까지 출력했으면 더이상 출력을 막음
  if(line_count == 9 && (row_count != 0) && (row_count % 99) == 0)
      break;
  //자동개행 문자 99자까지 입력받았을 땐 자동개행
  else if((row_count != 0) && (row_count % 99) == 0)   
      //이 작업을 끝마쳐야 출력이 정상적으로 되므로 PostMessage안씀.. SendMessge로..
      SendMessage(hWnd,WM_CHAR,VK_RETURN,NULL);
  
  str[line_count][row_count] = wParam;
  str[line_count][++row_count] = NULL;

  InvalidateRgn(hWnd, NULL, FALSE);
  break;
  } 

 

  return 0;

  case WM_PAINT:  
  hdc = BeginPaint(hWnd, &ps);

  //행단위로 출력
  //한글 한글자도 1글자, 영문 한글자로 1글자로 계산하기 위해서 유니코드 기반으로 작성
  for(int i = 0; i<=line_count; i++)
  {      
  charNum += _tcslen(str[i]);
  TextOut(hdc,0,tempypos,str[i],_tcslen(str[i]));
  tempypos+=20;
  }  

  //출력된 문자 수 출력해주는 곳
  wsprintf(charNumbuf,_T("출력된 문자 수 : %d"),charNum);
  TextOut(hdc,50,230,charNumbuf,_tcslen(charNumbuf));
  EndPaint(hWnd, &ps);
  return 0;

 

 
  case WM_DESTROY:
   PostQuitMessage(0);
   return 0;
 }
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}






10줄짜리 메모장 API로 만드는거인데
입력출력,엔터키,백스페이스,자동개행, caret이용한커서
이걸 전부 되게 하는건데 지금 다 하고 caret이용해서 입력된문자열뒤에 커서 따라오게해야되는데
그걸 몬하겟어염 ㅠㅠ꼭좀 도와줘요~~~



추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45315 65
2870737 다시 프갤 들어옴 ㅇㅇ(118.235) 22:10 1 0
2870735 여친 생기고 알게된거 ㅇㅇㅇㅇ(115.144) 22:07 1 0
2870733 GPT 임마 이거 내 프로젝트는 완성못하고 남의 외주만 완성한다고 ㅆㅇㅆ(124.216) 21:59 12 0
2870732 아래 문구 gpt에게 붙여넣은 결과 [2] ㅆㅇㅆ(124.216) 21:54 26 0
2870731 gpt에 이거 복붙해봐 신세계임 [1] 프갤러(210.99) 21:51 21 0
2870730 지금 프로그래밍 언어 배우는거 어떻게 생각해? [2] 프갤러(119.192) 21:43 16 0
2870728 전문학교 나온사람잇음?? [1] 프갤러(211.235) 21:32 13 0
2870727 토스로 이직했어 [1] ㅇㅇ(118.235) 21:28 31 0
2870725 프갤 ㅈ망했규나 [5] 조루디(110.35) 21:19 35 0
2870724 더워 조루디(110.35) 21:17 11 0
2870722 자주국방 시작하는 이재명 [7] 야옹아저씨갤로그로 이동합니다. 21:05 40 5
2870720 외케 취업 어려움 무관갤로그로 이동합니다. 20:56 19 1
2870719 Nginx Proxy Manager 질문이요 ㅠ [3] 프갤러(1.236) 20:56 30 0
2870718 막장 아마추어 리죄명 끌어내리고 처벌해야 ♥냥덩이♥갤로그로 이동합니다. 20:31 15 0
2870717 코드주면 알아서 포트폴리오 짜주는 그런거 없나 ㅇㅇ(223.38) 20:27 20 0
2870715 모든소스 짜는걸 gpt한테 넘긴다.. ㅇㅇ(175.197) 20:13 20 0
2870714 멍퀴벌레님 깝치지 마세양❤+ 나님 삼대 5백 출신이에양⭐+ ♥냥덩이♥갤로그로 이동합니다. 20:12 23 0
2870713 민생지원쿠폰 스위치 1,2 또는 데이터복구 업체에 하드 스마트폰 맡기기 넥도리아(121.139) 20:01 10 0
2870712 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 19:56 12 0
2870711 아 ㄹㅇ 개피곤하넹 [1] ♥냥덩이♥갤로그로 이동합니다. 19:29 20 0
2870710 초Ai 스카이넷 냥덩❤ [1] ♥냥덩이♥갤로그로 이동합니다. 19:26 26 0
2870709 러스트로 소설 써볼까 [1] 루비갤로그로 이동합니다. 19:21 21 0
2870708 타자 하두 많이 쳐서 손가락이 다 아프네 루비갤로그로 이동합니다. 19:19 16 0
2870707 살면서 호구처럼 당하기 싫으면 알고있자 [1] ㅇㅇㅇㅇ(124.198) 19:17 24 0
2870706 오늘 생일인데 아직도 버그 수정중 [5] ㅆㅇㅆ(124.216) 19:06 35 0
2870705 솔직히 회사 밥 먹이는 개발자 몇이나 된다고 [3] 프갤러(106.101) 19:05 45 0
2870704 날씨 애미뒤졌네 [1] 류류(118.235) 19:01 21 0
2870703 나님 피궁피궁.. ♥냥덩이♥갤로그로 이동합니다. 18:51 11 0
2870702 근디 나 Vue는 공부 안했고 Solid는 공부했는데 왜 Solid는 [2] ㅆㅇㅆ(124.216) 18:30 34 0
2870701 흠.. 빨라야 10월인강간.. ♥냥덩이♥갤로그로 이동합니다. 18:30 16 0
2870700 기술스택 생각해서 리액트 썼는데 후회됨 [6] 거북이속이거북갤로그로 이동합니다. 18:26 51 0
2870699 어쨌건 신문 다 읽었고 아직도 디버깅중 [4] ㅆㅇㅆ(124.216) 18:05 42 0
2870697 보통 인터넷 방송 보는 애들은 통계적으로 자존감이 낮은 편이니까 [3] ㅆㅇㅆ(124.216) 17:48 44 0
2870696 러스팅 소울, 6장: 최후의 유혹, 아니면 심연으로의 추락 루비갤로그로 이동합니다. 17:46 12 0
2870695 굴단인가 뭔가 무급노동 착취 논란봤는데 왜저런지 알겠네 [1] ㅆㅇㅆ(124.216) 17:31 56 2
2870694 뉴비 언어 동시에 배우면 헷갈림? [5] ㅇㅇ갤로그로 이동합니다. 17:24 36 0
2870693 피궁하넹.. [1] ♥냥덩이♥갤로그로 이동합니다. 16:56 18 0
2870691 AI병목 현상은 뭐 다른 프로그래머들도 다 있어서 AI로 다 못하지 [1] ㅆㅇㅆ(124.216) 16:42 26 0
2870690 'AI 부정론자를 패는 나' ㅇㅇ(223.38) 16:37 22 0
2870689 GPT랑 gemini 조련 중 [2] 아스카영원히사랑해갤로그로 이동합니다. 16:33 35 0
2870688 클로드도 코드좀 치지 않음? [3] 프갤러(175.208) 16:05 39 0
2870687 애플 디벨로퍼 아카데미? [2] 프갤러(118.235) 15:52 43 0
2870684 하 씨발 1차 납품했는데 버그 원인을 못찾겠어 [5] ㅆㅇㅆ(124.216) 15:14 60 0
2870682 정좌불능증 [3] 재현갤로그로 이동합니다. 14:53 33 0
2870680 덥다 [3] 루도그담당(211.235) 14:31 33 0
2870673 [대한민국] 모스탄 대사 그라운드 씨에 출현 예정- [1] 프갤러(121.172) 12:37 33 1
2870672 코드 가장 잘 짜는 AI 뭐냐? [13] 아스카영원히사랑해갤로그로 이동합니다. 12:18 134 0
2870671 종종 끌올되는 픎 자컨팀 빼앗겼다는 날조선동 ㅇㅇ(110.70) 12:01 41 0
2870670 지피티 씨발 존나 답답하네 [1] 아스카영원히사랑해갤로그로 이동합니다. 11:38 64 0
뉴스 이시영 "전 남편 동의없이 시험관"…둘째 임신 발표에 '갑론을박' 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2