窗口的按钮被BitBlt函数覆盖后,怎么重新显示按钮
窗口的按钮被BitBlt函数覆盖后,如何重新显示按钮?
详细说明如下:我用vc6.0创建一个窗口,窗口内建有一个“start"按钮。但执行下面代码
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
BitBlt (hdc, 0, 0, cxClient, cyClient, hdcMem, 0, 0, SRCCOPY) ;
//SetWindowPos(hwndStartButton,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
EndPaint (hwnd, &ps) ;
return 0 ;
后,按钮不见了,请问如何重新显示按钮?我用SetWindowPos不行。谢谢!
------解决方案--------------------
RedrawWindow(hwndStartButton);
------解决方案--------------------
在EndPaint之后重绘按钮,即:
详细说明如下:我用vc6.0创建一个窗口,窗口内建有一个“start"按钮。但执行下面代码
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
BitBlt (hdc, 0, 0, cxClient, cyClient, hdcMem, 0, 0, SRCCOPY) ;
//SetWindowPos(hwndStartButton,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
EndPaint (hwnd, &ps) ;
return 0 ;
后,按钮不见了,请问如何重新显示按钮?我用SetWindowPos不行。谢谢!
------解决方案--------------------
RedrawWindow(hwndStartButton);
------解决方案--------------------
在EndPaint之后重绘按钮,即:
- C/C++ code
... EndPaint(hwnd, &ps); InvalidateRect(hwndBtn, NULL, TRUE); // hwndBtn为按钮窗口句柄
------解决方案--------------------
呵呵,可能会闪烁。
------解决方案--------------------
给窗口添加WS_CLIPCHILDREN样式试试。
------解决方案--------------------
mark,
按钮为什么要建在显示窗口里面呢?
------解决方案--------------------
创建主窗口时,把这个风格WS_CLIPCHILDREN加上。
------解决方案--------------------
ShowWindow(),试一试吧
------解决方案--------------------
欧,我只是奇怪,
一般窗口程序的视图区,我是不会放置按钮的,通过菜单命令解决。
我曾见过在bar上放按钮,没见过在视图区,显示处理起来比较麻烦,毕竟要刷新么。
没什么关系,个人习惯罢了。
------解决方案--------------------
支持8楼,如果不行,先隐藏再显示