今天学习了如何实现自绘按钮,在网上有很多例子,MSDN里也有,看过也试过,但都存在一个问题:
自绘的按钮响应起来比普通的慢,如果鼠标点快些的话,每一个Left Button Down,普通按钮都作出反应(如:下沉或变色等),可是自绘的却不是这样,这是怎么回事,高人指点!这里有几个例子和源码:
http://www.vckbase.com/document/listdoc.asp?sclsid=301
自绘的按钮响应起来比普通的慢,如果鼠标点快些的话,每一个Left Button Down,普通按钮都作出反应(如:下沉或变色等),可是自绘的却不是这样,这是怎么回事,高人指点!这里有几个例子和源码:
http://www.vckbase.com/document/listdoc.asp?sclsid=301
原因如下:
自绘的按钮在收到WM_LBUTTONDBLCLK(双击)时,不会DrawItem
CButtonST类的解决方法是重写DefWindowProc
加入以下代码,将双击转为单击。
...
if (message == WM_LBUTTONDBLCLK)
{
message = WM_LBUTTONDOWN;
} // if
...本人将以上代码作如下修改,
if (message == WM_LBUTTONDBLCLK)
{
PostMessage(WM_LBUTTONDOWN,NULL,NULL);
} // if可让父窗口处理按钮的双击,不过好像又跟普通的不同了。搞了一整天,总算搞定!结贴!