C++ mfc 에서 질문입니다. 상태바에서 글씨나타내는것과 TRACKMOUSEEVENT 질문
무슬
void test::onmousemove(uint nflags, cpoint point)
{
// todo: add your message handler code here and/or call default
trackmouseevent trackmouseevent;
trackmouseevent.cbsize = sizeof(trackmouseevent);
if (m_leave == 0) {
trackmouseevent.dwflags = tme_leave;
}
else {
trackmouseevent.dwflags = tme_hover;
}
trackmouseevent.hwndtrack = m_hwnd;
trackmouseevent.dwhovertime = 10;
_trackmouseevent(&trackmouseevent);
cformview::onmousemove(nflags, point);
}
#ifdef hoverleave
void cahyuk2view::onmousehover(uint nflags, cpoint point)
{
m_leave = 0;
tranvalue(100);
}
lresult cahyuk2view::onmouseleave(uint nflags, cpoint point)
{
int trannum= tranvalues();
// cstring msg;
// msg.format(%d, aaaaa);
// afxmessagebox(msg);
m_leave = 1;
tranvalue(trannum);
return 0;
}
#endif
trackmouseevent 썼을때 뷰에서 버튼 컨트롤에서 .. 먹히지 않는 현상
상태바에서 글씨가 써지지 않는 현상..tranvalue(trannum);
이함수는 뷰를 투명화 시키는 것입니다.
보시면 폼뷰에서 hover(마우스를 이동하다 뷰윈도우에 위치했을때)일경우 100을 줘서 폼을 원상태로 투명하지 않게 해놓고
leave(마우스가 뷰윈도우를 벗어날경우)일경우 trannum이란 값에 따라 폼이 투명해 집니다.
그런데 찾아보니 hover 는 작업영역에서 메세지를 발생시키고
leave 는 작업영역이 아닐때 메세지를 발생시킨다고 나옵니다.
그런데 화면에 버튼 이잇습니다
여기서 start 버튼에 마우스 위치가 갔을 경우에도 폼이 투명하지 않아야합니다.
스타트와 그 밖 영역을 벗어나야지 투명해져야하는데..
지금 상황은 스타트 버튼에 가면 투명해 진다는 것입니다.
한마디로 네모난 뷰가 있으면 그 안에있는 버튼들이나 프로그레스 컨트롤 등에 대해서
hover 메세지가 발생하지 않습니다.
어떻게 해야하는것일까요 ??