윈도우즈 api정복 책을 보다가 4장 입력 예제 KEY에 아래와 같은 예문이 있어서 한번 <div><br></div> <div><div><span class="Apple-tab-span" style="white-space:pre;"> </span>if ((TCHAR)wParam == ' ') {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>str[0]=0;</div> <div>부분을 </div> <div><br></div> <div><br></div> <div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if ((TCHAR)wParam == 32||13 {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>str[0]=0;</div> <div>으로 바꾸었습니다만 제가 원하는 결과가 안나오네요.(엔터와 스페이스 입력시 입력문자 지워짐.)</div> <div>참고로 <span style="font-size:9pt;line-height:1.5;">if ((TCHAR)wParam == 32 {</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>str[0]=0;</div> <div>로 스페이스의 아스키코드값만 쓰면 결과가 ' '만 사용한 것과 동일합니다.</div> <div>왜 논리 or연산자를 사용했는데 원하는 결과가 안나오나요?</div> <div>그리고 엔터와 스페이스바 입력시 입력문자 전체가 지워지게 하려면 어떻게 코드를 바꿔야 좋을까요?</div> <div><br></div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">#include <windows.h></span></div></div> <div> <div><br></div> <div>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);</div> <div>HINSTANCE g_hInst;</div> <div>LPCTSTR lpszClass=TEXT("Key");</div> <div><br></div> <div>int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span> ,LPSTR lpszCmdParam,int nCmdShow)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>HWND hWnd;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>MSG Message;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WNDCLASS WndClass;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>g_hInst=hInstance;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.cbClsExtra=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.cbWndExtra=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.hInstance=hInstance;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.lpfnWndProc=WndProc;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.lpszClassName=lpszClass;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.lpszMenuName=NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>WndClass.style=CS_HREDRAW | CS_VREDRAW;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>RegisterClass(&WndClass);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>NULL,(HMENU)NULL,hInstance,NULL);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ShowWindow(hWnd,nCmdShow);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>while (GetMessage(&Message,NULL,0,0)) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>TranslateMessage(&Message);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>DispatchMessage(&Message);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return (int)Message.wParam;</div> <div>}</div> <div><br></div> <div>LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>HDC hdc;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>PAINTSTRUCT ps;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>static TCHAR str[256];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int len;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>switch (iMessage) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case WM_CHAR:</div> <div>//*</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>len=lstrlen(str);</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>str[len]=(TCHAR)wParam;</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>str[len+1]=0;</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>InvalidateRect(hWnd,NULL,FALSE);</div> <div>//*/</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if ((TCHAR)wParam == ' ') {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>str[0]=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>} else {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>len=lstrlen(str);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>str[len]=(TCHAR)wParam;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>str[len+1]=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>InvalidateRect(hWnd,NULL,TRUE);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case WM_PAINT:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>hdc=BeginPaint(hWnd,&ps);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>TextOut(hdc,100,100,str,lstrlen(str));</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>EndPaint(hWnd,&ps);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case WM_DESTROY:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>PostQuitMessage(0);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return(DefWindowProc(hWnd,iMessage,wParam,lParam));</div> <div>}</div></div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.