게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
api 기본 예제 질문
게시물ID : programmer_10167짧은주소 복사하기
작성자 : ㅜ_ㅠ
추천 : 0
조회수 : 350회
댓글수 : 8개
등록시간 : 2015/05/17 17:49:35
아래의 api예문에서 
int len;

switch (iMessage) {
case WM_CHAR:

len=lstrlen(str);
부분을 

int len=2;

switch (iMessage) {
case WM_CHAR:

//len=lstrlen(str);
으로 바꾸고 실행하니까 글씨가 안써지더군요.ㅡ.ㅡ
그래서
case WM_CHAR:
len=2;
//len=lstrlen(str);
으로 len값을 아예 WM_CHAR의 case문안에 삽입했는데도 또 글씨가 안써집니다.
제 생각에는 strlen으로 str배열의 길이 2를 구해서 len에 대입하는 것이나
len값을 아예 대입해서 넣는 것이나
다를바가 없는데 왜 strlen으로 값을 입력하면 글씨가 써지고 len에 직접 입력하면 글씨가 안써지나요?
그 이유를 알고 싶네요.

#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass=TEXT("Key");

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[2];
int len;

switch (iMessage) {
case WM_CHAR:

len=lstrlen(str);
   str[len]=(TCHAR)wParam;
str[len+1]=0;
InvalidateRect(hWnd,NULL,TRUE);

return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
TextOut(hdc,100,100,str,lstrlen(str));
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호