MFC 연습질문 기초
뭘봐요
마우스 왼쪽버튼을 누르면 원이 그려지게 했습니다..왼쪽 버튼 누를때마다 원이 그려져서 여러개의 생겼는데..윈도우 창을 최소화했다가 최대화하면 원이 모두 사라집니다. 이 원들이 그대로 그 위치에서 다시 보이게 하려는데 방법좀알려주세요..꾸벅..
-
엄지
윗분들을 이어서 얘기 한다면... 원을 그릴 때의 좌표를 기억하셨다가 WM_PAINT 즉, MFC에서는 OnDraw 함수나 OnPaint 함수가 호출되겠죠... 그 함수에서 기억된 좌표를 이용해서 그려주시면 됩니다... 기억된 좌표는 배열이나 연결리스트로 구현이 가능할 것 같습니다...
-
민구
그림은 어떻게 저장해서 다시 화면에 뿌려줄찌는 저도 API공부한지 얼마되지않아서 잘모르겠군요 아마 비트맵으로 저장해야되지않을까 생각합니다.
-
그린나래
해당매세지를 윈도우는 그냥 그려주질않습니다. 찬님말씀처럼 다시지워졌을때 WM_PAINT매세지가 발생하고요.. 만약 윈도우를 새로그릴일이있다면 강제로 WM_PAINT매세지를 발생시켜야합니다. 그함수는
invalidateRect함수입니다 . 윈도우를 무효와유효와 영역을 설정해서 강제로 WM_PAINT 매세지를 발생시킵니다. -
핑크펄
흠. MFC 를 바로 하셨는지요? API 쪽을 조금이라도 확인해 보시고.. 공부를 해 보는게 좋지 않을까 합니다. ^_^
창이 다시 그려져야 한다면. WM_PAINT 메세지를 받게 됩니다.
그러면. WM_PAINT 메세지가 처리 되는곳에서.. 화면을 다시 그리게 되는것이지요..
님의 프로그램에서 WM_PAINT 메세지를 받는데.그것을 새로 그려주지 못하고 있는것 때문에 문제가 됩니다.
창을 움직이거나. 가렸다 나타나게 할때 메세지를 처리할 수 있는 -
푸른잎
이번엔 글자를 화면에 출력했는 빽스페이스를 누르면 한글자 지워지게 할려는데 다 지워지네요..어케해야되나요? 윽..키다운함수에서if(nChar == VK_BACK)
\t{
\t\tm_str = m_str-\ \;
\t\tInvalidate();
\t}