gpt4 book ai didi

c++ - WM_CREATE 中的 InvalidateRect 不起作用

转载 作者:可可西里 更新时间:2023-11-01 10:02:12 28 4
gpt4 key购买 nike

我想在窗口创建时使它无效。我怎样才能做到这一点?在 WM_CREATE 期间调用 InvalidateRect 无效。

问题是我在 WM_CREATE 中调用 SetWindowLongPtr 并设置 GWLP_USERDATA。 WM_PAINT 在 USER_DATA 中寻找一些指针,但我第一次收到 WM_PAINT 时,数据显然不在那里,所以它不会绘制我的东西。

也试过这个:

#define MyDefinedMsg (WM_APP+1)
//...//
case WM_CREATE:
//...//
SetWindowLongPtr(hWnd,GWLP_USERDATA,ptr);
PostMessage(hWnd,MyDefinedMsg,0,0);

break;
case MyDefinedMsg:
InvalidateRect(hWnd,NULL,TRUE);
break;

但没有成功。

提前致谢

最佳答案

  1. 你的窗口在创建的时候就已经无效了
  2. PostMessage 将消息放入队列中,因此很可能在常规创建消息(WM_CREATE/WM_SIZE/WM_PAINT 等)之后到达。

如果您的绘画由于 GWLP_USERDATA 为 NULL 而失败,那么其他事情正在发生......

关于c++ - WM_CREATE 中的 InvalidateRect 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/698967/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com