Hook CCombobox后,CPU达到90%了.
我Hook CCombobox是为了想把CCombobox中的那个下拉按扭换成自己的图片.下面的代码,我就自己写的WM_PAINT消息处理函数.
若在语句1处,不调用CCombobox原来的WNDPROC函数的话,CPU就会达到90%了.
若在语句1处,调用CCombobox原来的WNDPROC函数的话,默认的灰色下拉按扭有时候又会显示出来,影响美观.
switch(msg) {
case WM_PAINT:
{
语句1 //在此若不调用原始的WNDPROC ,CPU就会达到90%以上
CRect rc;
GetWindowRect(m_hwndHooked,&rc);
rc.OffsetRect(-rc.left,-rc.top);
HDC hWinDC;
hWinDC = ::GetWindowDC(m_hwndHooked);
HBITMAP hbitmap ;
//加载图片
hbitmap = LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BUTTON_BITMAP );
HDC bitmapDC;
bitmapDC =CreateCompatibleDC(NULL);
HBITMAP pOldBitmap =(HBITMAP)SelectObject( bitmapDC,hbitmap);
BITMAP bm ;
GetObject( hbitmap , sizeof(bm) , &bm ) ;
//绘制图片
::BitBlt(hWinDC,rClient.left,rClient.top,
rClient.Width(),rClient.Height(),bitmapDC,0,0,SRCCOPY);
return TREU ;
}
break ;
//...
}