폼의 페인트핸들러에서 그래픽 처리를 하려고 합니다.
그런데, 이상한 것이 마우스가 폼에 있는 다른 버튼 위를 움직여다닐 때에도
폼의 이벤트가 발생하는데, 이것이 정상인지? 그리고 어떻게 하면 이 경우를
무시할 수 있는지 궁금해서 질문드립니다.
소스는 요약하면 다음과 같고, 그래픽파일이 오픈되면 그 때 부터 폼의
페인트핸들러가 호출되면서 화면에 그리려고 합니다.
bool IsGraphicFileOpened = false;
private void btnGraphicFileOpen_Click(object sender, EventArgs e)
{
IsGraphicFileOpened = true;
this.Invalidate(); // Form1의 페인트핸들러가 호출되게 설정
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
if (!IsGraphicFileOpened)
return;
// 위의 질문처럼, 그래픽파일이 오픈된 이후에 마우스가 다른 버튼 위를 움직이게 되면
// Message=0x318(WM_PRINT_CLIENT)가 발생해서 아래를 수행하게 됩니다.
// 이 때, 다음 라인이 실행되도 실제로 그려지지는 않는데 아예 여기를 실행하지 않게 하려면
// 어떻게 하면 되나요?
e.Graphics.Draw...();
}
사이트에 올려주신 좋은 자료들 항상 감사히 잘 보고 있습니다.
[최초 등록일: ]
[최종 수정일: 8/30/2021]