我用的单文档弄的小东西,创建了几个按钮,因为响应WM_MOUSEMOVE 每移动鼠标都要导致重绘 按钮的重绘都会一闪一闪的 怎么解决啊
……
……
解决方案 »
- 百度又给我出了一道难题
- 如何得到BMP,JPG,GIF,PNG图片像素像素大小(SDk) 在载入图片前得到 请给出核心代码 谢谢!
- 我把系统提供的(IDR_MAINFRAME)菜单删除了,当我编译运行时,发现我的工程什么都看不到了.我该怎么办!
- 在什么时候需要多线程编程?怎样使用多线程编程?
- 为什么只能打开1--9串口10以上都不能打开呢?
- 请问如何在自己的程序中让运行着的autocad执行某个命令
- 请教大家一个问题,我在向DLL中增加一个输出函数时,为什么不能够在DLL的导出上自动生成导出信息呢?
- 我的CListCtrl为什么显示中文是乱码?
- MFC socket server ---> client
- 为什么DUILIB的flash例子不能正常播放swf
- Ftp文件下载中的奇怪现象!
- 新手,求推荐书??
这样的按钮上移动时就不会闪烁了!
void CTomButton::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (!m_bHover)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.dwHoverTime = 10;
tme.hwndTrack = this->GetSafeHwnd();
::_TrackMouseEvent(&tme); m_bHover = TRUE;
Invalidate();
} CButton::OnMouseMove(nFlags, point);
}
LRESULT CTomButton::OnMouseLeave(WPARAM,LPARAM)
{
if (m_bHover)
{
m_bHover = FALSE;
Invalidate();
} return 0L;
}
设置剪裁区, 应该不用说得再详细了吧。
矩形中减去你的按钮矩形, 新的region就是你的剪裁区。
http://topic.csdn.net/u/20090224/16/ec335984-771b-405f-a93e-b726daf1abce.html