Blog categories

Comments

[WIN API] 리치에디터 마우스 이벤트 메시지 마스크

[WIN API] 리치에디터 마우스 이벤트 메시지 마스크

리치에디터의 생성 이후 마스크를 설정합니다.

LRESULT mask;
mask = SendMessage(hRichEdit, EM_GETEVENTMASK, 0, 0); // 리치에디터의 마스크 값을 받아옵니다.
SendMessage(hRichEdit, EM_SETEVENTMASK, 0, mask | ENM_MOUSEEVENTS );
// 기존의 마스크와 ENM_MOUSEEVENTS를 OR연산 시킵니다.

ENM_MOUSEEVENTS는 리치에디터에서 일어나는 마우스 이벤트를 받도록 해주는 마스크입니다.

마스크 설정이 끝났으면 WndProc로 돌아와 아래의 코드를 넣습니다.
메시지는 WM_NOTIFY에 전달되며 lParam에 있는 메시지 필터를 확인해야 상세한 메시지 내용을 알 수 있습니다.

MSGFILTER *mf; // 메시지 필터

// 생략
case WM_NOTIFY:
  mf = (MSGFILTER*)lParam;
  switch(mf->msg){
    case WM_LBUTTONDOWN:
      cout << "WM_LBUTTONDOWN" << endl;
      break;
    case WM_MOUSEMOVE:
      cout << "WM_MOUSEMOVE"<< endl;
      break;
  }
break;

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

div#stuning-header .dfd-stuning-header-bg-container {background-color: #3f3f3f;background-size: cover;background-position: top center;background-attachment: initial;background-repeat: no-repeat;}#stuning-header div.page-title-inner {min-height: 350px;}