双击鼠标左键没有反应,运行也不报错,就是自己退出来,本来双击是可以打出字的,我又设置了一个变量的值在里面,结果就不执行了,把变量赋值的语句删去后,仍然不好用,不知道是为什么
代码关键部分
void CWangLiuLin190304View::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
pDC = GetDC();
DrawBoo(pDC,point);
CView::OnLButtonDblClk(nFlags, point);
}
DrawBoo(CDC *pdc, CPoint ptPos)函数
void CWangLiuLin190304View::DrawBoo(CDC *pdc, CPoint ptPos)
{
static char sz[] = "Hi,Mrs.Wang!";
pdc->TextOut(ptPos.x,ptPos.y,sz,sizeof(sz) - 1);
}
找到原因了,我其实程序里面还有两个响应函数是LButtonDown()和LButtonUp(),我在LButtonDown()中GetDC(),在LButtonUp()中把GetDC()的DC Release掉了,我在双击左键的时候,**单击左键**和**左键抬起**事件都被触发了,就是刚拿到的DC,又被释放了,所以后来在我调试的过程中,出现了handled exception,我想应该是这个原因,如果哪里不对,还望指正!
// CQ753153View message handlers
void CQ753153View::DrawBoo(CDC *pdc, CPoint ptPos)
{
wchar_t sz[] = _T("Hi,Mrs.Wang!");
pdc->TextOut(ptPos.x,ptPos.y,(LPCTSTR)sz,sizeof(sz) / sizeof(wchar_t) - 1); //注意这里字符串长度的计算
}
void CQ753153View::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
pDC = GetDC();
DrawBoo(pDC,point);
CView::OnLButtonDblClk(nFlags, point);
}