디시인사이드 갤러리

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

갤러리 본문 영역

형아들 API질문좀

API(219.251) 2010.09.18 17:36:28
조회 337 추천 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 - -
339079 컴퓨터로 여자 꼬시는 법 [3] JSP(182.211) 12.11.28 156 0
339078 C로 파일입출력및삭제 기능 소스짜주실분..사례비드립니다 [2] 입출력(1.214) 12.11.28 87 0
339077 바디랭귀지.jsp JSP(182.211) 12.11.28 71 0
339076 구피 새끼가 사라졌어 이모군(175.114) 12.11.28 39 0
339075 이쯤에서 적절한 빠이유 + 어승철 [1] JSP(182.211) 12.11.28 102 0
339074 성추문 검사 여자 사진.jsp [1] JSP(182.211) 12.11.28 1268 1
339073 리눅스 커널 분석해보고싶은데 어떤걸 봐야함 ? .JPG [4] aa7(123.108) 12.11.28 142 0
339072 리눅스 커널개발자 천재들이냐? .jpg [2] aa7(123.108) 12.11.28 246 0
339071 로또 조작은 가능할꺼 같지 않음??? [9] JSP(182.211) 12.11.28 227 0
339070 근데 이번에 성추문 검사 말인데 [2] ㅁㅁㅇ(211.244) 12.11.28 177 0
339069 싱글 게임 제한해제해주실 능력자분 ㅠㅠ 징기스칸4(125.182) 12.11.28 34 0
339068 성추문 검사 여자 사진이 실시간 1위던데 [2] JSP(182.211) 12.11.28 575 0
339067 자바와 자바스크립트의 공통점 [1] 비밀의계곡갤로그로 이동합니다. 12.11.28 103 0
339065 전화기형 근데 형 왜 안보임? [2] Adelposs갤로그로 이동합니다. 12.11.28 41 0
339064 모태쏠로라서 모르겠는데 [2] ktx(121.169) 12.11.28 70 0
339063 진지하게 성인어플 생각하고있다 [7] 얼룩돼지갤로그로 이동합니다. 12.11.28 587 0
339062 프갤러들아 비법전수좀 ㅋ [10] Adelposs갤로그로 이동합니다. 12.11.28 142 0
339061 C언어 과제중인데, 결과가 정확하게 왜 출력이 안될까요 ㅠ [4] 세렌티아s갤로그로 이동합니다. 12.11.28 90 0
339060 저 가드너(gardener) 됨 [6] Kyle(220.244) 12.11.28 147 0
339058 모비스 전산실 운영요원이 op지? [4] 노흑(202.68) 12.11.28 183 0
339057 진지하게 어셈블리어 공부해볼까 고민중이에연 [8] 멘탈붕괴_갤로그로 이동합니다. 12.11.28 155 0
339056 최고의 학벌테크 어떠냐 ? ㅇㅇ [1] ☎2.51™갤로그로 이동합니다. 12.11.28 133 0
339055 포항의봄 워홀이냐? 외국출장이라메 --;; [2] 얼룩돼지갤로그로 이동합니다. 12.11.28 64 0
339052 취업사이트 검색 [5] 궁금(211.234) 12.11.28 74 0
339051 이게 왜 안되는 거죠? c언어 [4] vnidb갤로그로 이동합니다. 12.11.28 99 0
339048 예전 프갤러들이.. [2] ㅎㄷㄷ(119.201) 12.11.28 95 0
339047 컴퓨터구조 아래 글 올린놈인데요 도와주실분 계신가요 [5] ㅇㅇ(121.140) 12.11.28 82 0
339046 어제 덜덜 떨었다. (to 프갤러) [4] ㅎㄷㄷ(119.201) 12.11.28 107 0
339045 it 병역특례 가능성 없나여? [3] ㄹㅇ(211.226) 12.11.28 119 0
339044 컴퓨터구조요 [6] ㅇㅇ(121.140) 12.11.28 174 0
339043 컴퓨터구조 과제좀 해주실분 ㅠㅠ [1] ㅇㅇ(121.140) 12.11.28 66 0
339042 mfc익숙치가 않은데 쓰레드를 사용하고 싶어서 질문이요 [5] ㄱㄱㄹ(119.203) 12.11.28 91 0
339041 무적의 솔로들이여 언제까지 크리스마스 이브를 혼자 보낼텐가?? [5] JSP(182.211) 12.11.28 91 0
339040 형들 유닉스가 C언어로 만들어졌잖아 그럼 윈도우는 뭐로 만들어졌어? [3] 형들(218.55) 12.11.28 128 0
339038 내가 아까 실내등 켜진차 있어서 문자보냈었는데 대답이 없네.. [2] ㅋㄱ(183.96) 12.11.28 69 0
339036 매트랩 소리신호 노이즈제거 하는법좀 알려주세여 매트랩(117.16) 12.11.28 103 0
339034 PS4 XBOX720이 언리얼엔진 4 장착하네용? [3] 상상(175.123) 12.11.27 81 0
339033 형들 저 c문법 배우는 학생인데요 이런건어떻게 풀어요? [1] 꿈꾸는낭만갤로그로 이동합니다. 12.11.27 110 0
339031 안드로이드 개발환경 설치 어떻게 해여? [3] 개발자(27.115) 12.11.27 80 0
339030 아오 시발 것들 왜 좆도 아닌것들이 자체 이력서를 쓰라고 지랄이야 [2] 아오(182.211) 12.11.27 93 0
339027 고랭? 소환글 [1] WannaParty갤로그로 이동합니다. 12.11.27 48 0
339024 걍 신세한탄좀 해도되나여 [12] 나그네(211.210) 12.11.27 233 0
339023 A날 ~ B날까지 총 몇일인지 구하는 방법이 뭐냐 [2] 리버싱갤로그로 이동합니다. 12.11.27 78 0
339022 리눅스 관련된 글은 프갤에 쓰면됨? [2] 리눅스(203.237) 12.11.27 50 0
339021 웹개발 신입이 어느정도까지 공부하고 입사 할수 있나요 [5] dd(61.35) 12.11.27 228 0
339020 api 공부중인데, 이 함수 어떻게 읽나요? [4] 이거뭔가요?(211.194) 12.11.27 105 0
339019 소개팅 하기전에 주선자에게 이런말을 해주자 [1] JSP(182.211) 12.11.27 105 0
339017 소설처럼 읽는 JSP 7강까지 끝냈다 헉헉 JSP(182.211) 12.11.27 65 0
339016 c언어로 raw파일 만들고 있는데 안되는게 있슴돠 [1] 무적귀환갤로그로 이동합니다. 12.11.27 68 0
339015 남자친구를 기계어로 쓰면 뭔가요? [4] 예아(59.14) 12.11.27 151 0
뉴스 '남주의 첫날밤을 가져버렸다' 서현-옥택연, 스타일부터 분위기까지 완벽 케미! 캐릭터 맞춤 전통美 의상에 시선 집중! 디시트렌드 07.07
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2