디시인사이드 갤러리

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

갤러리 본문 영역

형아들 API질문좀

API(219.251) 2010.09.18 17:36:28
조회 334 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 힘들게 성공한 만큼 절대 논란 안 만들 것 같은 스타는? 운영자 24/06/10 - -
이슈 [디시人터뷰] 웃는 모습이 예쁜 누나, 아나운서 김나정 운영자 24/06/11 - -
221308 프갤 횽들 API에서 랜덤하게 움직이게 어떻게 하나요?? [3] 랜징징갤로그로 이동합니다. 10.11.30 91 0
221306 dict 파일이랑 idx 화일의 데이터 읽어내는 법 좀 알려주세요. gcc짜장짱(119.202) 10.11.30 271 0
221305 스티브잡스가 프로그래머가 아니라는데 [4] elwlwlwk갤로그로 이동합니다. 10.11.30 222 0
221304 40만원짜리 AVR보드 득템했다 ㅋㅋ [2] .3(124.137) 10.11.30 149 0
221303 09 [1] rntjr갤로그로 이동합니다. 10.11.30 86 0
221302 바다 뭐 교육있어?, [1] 초밥술사갤로그로 이동합니다. 10.11.30 65 0
221299 애플아 너의 패턴은 모두 간파했당 [2] 분당살람갤로그로 이동합니다. 10.11.30 93 0
221297 프로젝트가 미쳐간다 [8] 땡칠도사갤로그로 이동합니다. 10.11.30 189 0
221295 삭니 음모론 [3] 캐꼬꼬닭(112.216) 10.11.30 113 0
221293 껐다 키기가 귀찮아 [2] JasonHan갤로그로 이동합니다. 10.11.30 52 0
221292 VS C# 환경에서 사용하는 컴퓨터의 사양을 불러올수도 있습니까? [1] 폭행차단갤로그로 이동합니다. 10.11.30 270 0
221291 디시는 왜 고정닉 이딴걸 만들어ㅕㅆ냐 [5] 김늅늅(61.40) 10.11.30 104 0
221290 아이패드는 허세 머신으로도 실패임 [5] 분당살람갤로그로 이동합니다. 10.11.30 146 0
221288 아이패드 64g 잠깐 써보고 느낀 생각 [4] 분당살람갤로그로 이동합니다. 10.11.30 255 0
221287 자바 String 질문좀 ㅠㅠ(쪼금 난이도있는거같아요) [11] 자바고수형들(220.68) 10.11.30 134 0
221283 엡스토어 하면서 느낀건데.. 적이되고싶은가갤로그로 이동합니다. 10.11.30 62 0
221282 어제 택시기사 ㅈㄹ 불친절... [3] 한강구조견(59.6) 10.11.30 134 0
221280 흠... 삼성 바다플랫폼 어플만들어주면 돈좀 만지려나. [2] 한강구조견(59.6) 10.11.30 149 0
221279 형들 안녕 [3] 양파밭갤로그로 이동합니다. 10.11.30 68 0
221278 횽들 안녕? win7의 programs files에대한 궁금한게 생성됐어. [10] Gromit갤로그로 이동합니다. 10.11.30 140 0
221276 구석횽 긴급 소환... [3] 물속의다이아갤로그로 이동합니다. 10.11.30 69 0
221274 내일 모레... [3] 에필로스갤로그로 이동합니다. 10.11.30 92 0
221273 배고프다. [1] 머그컵갤로그로 이동합니다. 10.11.30 33 0
221272 블루스크린 stop 0x0000000ea ㅠㅠ [10] da(125.191) 10.11.30 233 0
221271 정열의 나라 브라질 상파울로 이쁜 여자 이야기 [3] 물속의다이아갤로그로 이동합니다. 10.11.30 329 0
221270 아틀란타 거지 적선 + 관광 이야기 [2] 물속의다이아갤로그로 이동합니다. 10.11.30 174 0
221268 미쿡 시골 호텔에서 프론트 여자가 운 이야기 [2] 물속의다이아갤로그로 이동합니다. 10.11.30 129 0
221267 윈도우7 종료지연 없애기 Hot fix [4] 권혁진(218.239) 10.11.30 493 0
221266 마솔루야~! [4] 권혁진(218.239) 10.11.30 69 0
221265 마지막이 훈훈하다. [5] 권혁진(218.239) 10.11.30 119 0
221263 인셉션 재밌어. [1] Gromit갤로그로 이동합니다. 10.11.30 65 0
221262 개풀 뜯어 먹는 소리.SWF [3] 권혁진(218.239) 10.11.30 84 0
221261 내가 새벽에 왜 일어났는지 모르겠다 [6] 해일리갤로그로 이동합니다. 10.11.30 81 0
221260 아오 MAC........ 나도 공순이 다됬나봄. [10] Minryu갤로그로 이동합니다. 10.11.30 252 0
221259 삼국지하다 밤샜다 -_- [1] DMW갤로그로 이동합니다. 10.11.30 75 0
221257 니들이 홍어맞을 알어? ㅋㅋㅋㅋ [1] 홍어(219.251) 10.11.30 93 0
221256 새벽반을 소환합니다 [6] 도넛맛경유(211.202) 10.11.30 100 0
221255 대체 flex는 mysql하고 result로 통신 어케 하는 겅미 [2] 아아(116.44) 10.11.30 85 0
221254 api에서 메모장으로 키다운메시지보낼려고하는데 도와주세요 입문자(59.25) 10.11.30 262 0
221253 관공서 일하기 죤나 죠같네 [1] ㄴㅇ(210.124) 10.11.30 125 0
221251 액션스크립트 도와주십쇼. [9] 311123113(115.139) 10.11.30 125 0
221250 요즘 대학생들 좀 한심하더라. [5] (168.131) 10.11.30 259 0
221248 아 씨바 다리야...ㅠㅠㅠㅠㅠ [2] 아주아슬갤로그로 이동합니다. 10.11.30 95 0
221247 SSL ?? 이거 인증서 어디서 받아.. [4] ㅇㅇ(168.131) 10.11.30 76 0
221246 프갤 형님들 계십니까 [30] 도와주십쇼(119.197) 10.11.30 166 0
221242 횽들을 위한 문화생활 [1] 홍다(114.199) 10.11.30 48 0
221241 프갤횽들 윈도우에서 랜덤함수 관련 질문좀~ [1] 랜징징갤로그로 이동합니다. 10.11.30 52 0
221239 문제해결.. 시크한훈남갤로그로 이동합니다. 10.11.30 79 0
221238 이틈에 홍다 인증 [3] 홍다(114.199) 10.11.30 115 0
221237 설계프로그램 Patran 라이센스 문제요!!!ㅠㅠ급함 [1] 흐흐흑ㅠㅠ(124.62) 10.11.30 241 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2