自己用CreateWindowEx创建的窗口,出现窗口覆盖的问题,求助!

zhpzh 2009-09-19 03:20:43
注册窗口类:
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASS wc;

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hCursor = NULL;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = gs_szWindowClass;

return RegisterClass(&wc);
}

hWnd 是自己画,用CreateWindowEx创建的:
hWnd = CreateWindowEx(WS_EX_APPWINDOW, gs_szWindowClass, NULL, WS_POPUP | WS_VISIBLE,
pwpi->x, pwpi->y, pwpi->cx, pwpi->cy, NULL, NULL, pem_wgr->hInstance, NULL);

... ...

GetClientRect(hWnd , &rc);
w = rc.right-rc.left;
h = rc.bottom-rc.top;
hBitmap=CreateCompatibleBitmap(hdc, w, h); // 当窗口在其它窗口后面时,执行此语句后,如果把创建的位图hBitmap显示出,发现这个位图的是覆盖它的窗口了,怎么解决这个问题呀?
...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhpzh 2009-09-21
  • 打赏
  • 举报
回复
自己顶呀,高手快帮忙呀,问题还没解决呀
zhpzh 2009-09-19
  • 打赏
  • 举报
回复
没有 GetClientDC 这个API呀
MoXiaoRab 2009-09-19
  • 打赏
  • 举报
回复
GetClientDC
GetClientRect
panfeng_87 2009-09-19
  • 打赏
  • 举报
回复
GetClientDC??
zhpzh 2009-09-19
  • 打赏
  • 举报
回复
回复#3楼:

获取的就是这个窗口的DC呀,这样的:
hdc = GetDC(hWnd);
MoXiaoRab 2009-09-19
  • 打赏
  • 举报
回复
DC获得不对,你获得自己的DC就没问题。
获得客户区的DC和RECT,然后StrechBlt
zhpzh 2009-09-19
  • 打赏
  • 举报
回复
句柄没错。如果只被覆盖一部分,只有覆盖的部分变成覆盖它的窗口对应的部分了,其它部分还是窗口自己的。
youyifang 2009-09-19
  • 打赏
  • 举报
回复
检查下句柄是怎么得到的,是不是你要的这个窗口的句柄.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧