在MFC中主窗口中Create几个子窗口,怎么实现按下鼠标左键拖动时选中任意几个子窗口
在MFC中主窗口中Create几个子窗口,如何实现按下鼠标左键拖动时选中任意几个子窗口
问题是这样我在主窗口下写了这样创建窗口的函数void CXXView::DrawSpecialIDWall(int Index,int wparam,int lParam,int wid,int high,COLORREF rgb1,COLORREF rgb2,COLORREF rgb3)
{
m_Btn1.Create("1 ", WS_CHILD | WS_VISIBLE, POSITION[0], r, this, MY_BTN1, 1, rgb1, rgb2, rgb3, GetSysColor(COLOR_BTNFACE));
m_Btn2.Create("2 ", WS_CHILD | WS_VISIBLE, POSITION[0], r, this, MY_BTN1, 1, rgb1, rgb2, rgb3, GetSysColor(COLOR_BTNFACE));
.
.
.
}
然后问题就来了,每次按下鼠标的时候,就只选中单个窗口,如何写一个函数,来处理按下鼠标左键拖动鼠标的时候选中多个窗口?
------解决方案--------------------
在主窗口中添加一个虚函数,两个消息处理,代码中有注释,应该能满足LZ的要求,vs2010测试通过。
------解决方案--------------------
新版本,应该可以满足你的需求
设置普通态文字颜色,默认黑色void SetNormalTextColor(COLORREF clrText)
设置选中态文字颜色,默认白色void SetCheckTextColor(COLORREF clrText)
设置普通态背景颜色,默认黄色void SetNormalColor(COLORREF clrNor)
设置选中态背景颜色,默认红色void SetCheckColor(COLORREF clrChk)
按钮单击时调用void ChangeCheckMode()
获取选中状态与否BOOL GetCheckMode()
问题是这样我在主窗口下写了这样创建窗口的函数void CXXView::DrawSpecialIDWall(int Index,int wparam,int lParam,int wid,int high,COLORREF rgb1,COLORREF rgb2,COLORREF rgb3)
{
m_Btn1.Create("1 ", WS_CHILD | WS_VISIBLE, POSITION[0], r, this, MY_BTN1, 1, rgb1, rgb2, rgb3, GetSysColor(COLOR_BTNFACE));
m_Btn2.Create("2 ", WS_CHILD | WS_VISIBLE, POSITION[0], r, this, MY_BTN1, 1, rgb1, rgb2, rgb3, GetSysColor(COLOR_BTNFACE));
.
.
.
}
然后问题就来了,每次按下鼠标的时候,就只选中单个窗口,如何写一个函数,来处理按下鼠标左键拖动鼠标的时候选中多个窗口?
------解决方案--------------------
在主窗口中添加一个虚函数,两个消息处理,代码中有注释,应该能满足LZ的要求,vs2010测试通过。
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_LBUTTONDOWN)
SetCapture(); // 让主窗口接收鼠标消息
return CFrameWnd::PreTranslateMessage(pMsg);
}
void CMainFrame::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 根据鼠标位置选择窗口
CFrameWnd::OnMouseMove(nFlags, point);
}
void CMainFrame::OnLButtonUp(UINT nFlags, CPoint point)
{
ReleaseCapture(); // 释放鼠标消息
CFrameWnd::OnLButtonUp(nFlags, point);
}
------解决方案--------------------
新版本,应该可以满足你的需求
设置普通态文字颜色,默认黑色void SetNormalTextColor(COLORREF clrText)
设置选中态文字颜色,默认白色void SetCheckTextColor(COLORREF clrText)
设置普通态背景颜色,默认黄色void SetNormalColor(COLORREF clrNor)
设置选中态背景颜色,默认红色void SetCheckColor(COLORREF clrChk)
按钮单击时调用void ChangeCheckMode()
获取选中状态与否BOOL GetCheckMode()