在manframe种里处理工具栏的消息处理函数里把图片加载到工具栏,狂闪窗口,图片变花//why?窗口移动也进入wm_paint了
在manframe类里处理工具栏的消息处理函数里把图片加载到工具栏,狂闪窗口,图片变花//why?,窗口移动也进入wm_paint了
------最佳解决方案--------------------
你加载的ToolBar ID没有啊,家在IDR_MAINFRAM就可以了,另外,你的ToolBar资源做的有点问题
------其他解决方案--------------------
单凭这几行代码看不出
------其他解决方案--------------------
你要代码吗?
------其他解决方案--------------------
可以发我邮箱给你调下:liqisong611@hotmail.com
------其他解决方案--------------------
hdc = ::BeginPaint(hWnd, &ps);
...
::EndPaint(hToolParent, &ps);
马虎了吧
------其他解决方案--------------------
太阳哥 我发了 收到了嘛????
------其他解决方案--------------------
改了也不行。
HBITMAP hOldHdc;;
HWND hToolBar;
WNDPROC OldToolBarWndProc;
HDC hdcmen;
HDC hdc;
HBITMAP hOldTemp;
PAINTSTRUCT ps;
//MainFram函数里OnCreate()
hToolBar = m_wndToolBar.m_hWnd;
hOldHdc=(HBITMAP)LoadImage(NULL,".//res//u.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
OldToolBarWndProc = (WNDPROC)::SetWindowLong(hToolBar,GWL_WNDPROC,(LONG)ToolBarWndProc);
static LRESULT CALLBACK ToolBarWndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Message)
{
case WM_PAINT:
hdc = ::BeginPaint(hWnd, &ps);
hdcmen = ::CreateCompatibleDC(NULL);
hOldTemp = (HBITMAP)SelectObject(hdcmen,hOldHdc);
BitBlt(hdc, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right, ps.rcPaint.bottom, hdcmen,0,5, SRCCOPY);
::SelectObject(hdcmen, hOldTemp);
::DeleteDC(hdcmen);
::EndPaint(hToolParent, &ps);
return 0;
default:
return CallWindowProc(OldToolBarWndProc, hWnd, Message, wParam, lParam);
}
}
------最佳解决方案--------------------
你加载的ToolBar ID没有啊,家在IDR_MAINFRAM就可以了,另外,你的ToolBar资源做的有点问题
------其他解决方案--------------------
单凭这几行代码看不出
------其他解决方案--------------------
你要代码吗?
------其他解决方案--------------------
可以发我邮箱给你调下:liqisong611@hotmail.com
------其他解决方案--------------------
hdc = ::BeginPaint(hWnd, &ps);
...
::EndPaint(hToolParent, &ps);
马虎了吧
------其他解决方案--------------------
太阳哥 我发了 收到了嘛????
------其他解决方案--------------------
改了也不行。