<div>#include <windows.h></div> <div>LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span> WPARAM wParam, LPARAM lParam);</div> <div>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span> LPSTR lpszCmdLine, int nCmdShow)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>HWND <span class="Apple-tab-span" style="white-space: pre"> </span> hwnd;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>MSG <span class="Apple-tab-span" style="white-space: pre"> </span> msg;</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>WndClass.style = CS_HREDRAW | CS_VREDRAW;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.lpfnWndProc = WndProc;<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.cbClsExtra<span class="Apple-tab-span" style="white-space: pre"> </span>= 0;<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.cbWndExtra<span class="Apple-tab-span" style="white-space: pre"> </span>= 0;<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.hInstance = hInstance;<span class="Apple-tab-span" style="white-space: pre"> </span></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.hCursor = LoadCursor(NULL, IDC_ARROW);<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.lpszMenuName = NULL;<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WndClass.lpszClassName = "Window Class Name";<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>RegisterClass(&WndClass);<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>hwnd = CreateWindow("Window Class Name",</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>"Window Title Name",</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>WS_OVERLAPPEDWINDOW,</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>CW_USEDEFAULT,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>CW_USEDEFAULT,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>CW_USEDEFAULT,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>CW_USEDEFAULT,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>NULL,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>NULL,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>hInstance,<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>NULL<span class="Apple-tab-span" style="white-space: pre"> </span> </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>ShowWindow(hwnd, nCmdShow);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>UpdateWindow(hwnd);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>while (GetMessage(&msg, NULL, 0, 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>TranslateMessage(&msg);<span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>DispatchMessage(&msg);<span class="Apple-tab-span" style="white-space: pre"> </span></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)msg.wParam;</div> <div>}</div> <div><br /></div> <div>LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span> WPARAM wParam, LPARAM lParam)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>HDC<span class="Apple-tab-span" style="white-space: pre"> </span>hdc;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>PAINTSTRUCT<span class="Apple-tab-span" style="white-space: pre"> </span>ps;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>static char<span class="Apple-tab-span" style="white-space: pre"> </span>str[100][100];</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>static int<span class="Apple-tab-span" style="white-space: pre"> </span>count, yPos, ycnt, xPos;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>static SIZE<span class="Apple-tab-span" style="white-space: pre"> </span>size;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>int idx;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>switch (iMsg) </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case WM_CREATE:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>count = 0;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>yPos = 0;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>xPos = 0;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>CreateCaret(hwnd, NULL, 5, 15);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>ShowCaret(hwnd);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>break;</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case WM_KEYDOWN:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>switch(wParam)</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case VK_DOWN:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>yPos += 20;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case VK_UP:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>yPos -= 20;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case VK_LEFT:</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case VK_RIGHT:</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div><br /></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>idx = 0;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>hdc = BeginPaint(hwnd, &ps);</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>while ( idx <= ycnt){</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>GetTextExtentPoint(hdc, str [idx], strlen(str [idx]), &size);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>TextOut(hdc, 0, idx * 20, str [idx], strlen(str [idx]));</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>idx++;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>SetCaretPos(size.cx, yPos);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</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>break;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>case WM_CHAR:</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>if (wParam == VK_BACK) count--;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>else if (wParam == VK_RETURN)</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>count = 0;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>ycnt++;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>yPos = yPos + 20;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</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>str[ycnt][count++] = wParam;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>str[ycnt][count] = '\0';</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>InvalidateRgn(hwnd, NULL, TRUE);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>break;</div> <div><br /></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>HideCaret(hwnd);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>DestroyCaret();</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>break;</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, iMsg, wParam, lParam));</div> <div>}</div> <div><br /></div> <div><br /></div> <div> <hr /><br /></div> <div><br /></div> <div><br /></div> <div>이렇게 짰는데요.. Caret을 적히는 문자에 맞춰 이동시키다보니 size.cx를 x좌표로 하는데.. y좌표는 yPos.</div> <div><br /></div> <div>문제는 방향키로 Caret을 원하는위치로 이동시켜야 하는데 y좌표가 지정되어있는 yPos는 손쉽게 +-20으로 UP, DOWN을 작동시켰습니다만..</div> <div><br /></div> <div>LEFT, RIGHT가 안됩니다 ㅠㅠ</div> <div><br /></div> <div>따로 xPos로 줘서 이동시킬려니 Caret이 문자에 따라 맞춰서 이동이 안됩니다 ㅠㅠ</div> <div><br /></div> <div>어떻게 해야하나요?</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.