以编程方式发送WM_SIZE
消息是否有问题,例如:
SendMessage(hWnd, WM_SIZE, 0, 0);
我不关心wParam
和lParam
的值(我的WM_SIZE
事件处理程序不使用它们。)
我想要做的是在我的程序中的其他地方使用WM_SIZE
事件处理程序中的代码,但我不想复制它,所以我想只发送一个{{1}消息。
答案 0 :(得分:1)
我想要做的是在我的程序中的其他地方使用WM_SIZE事件处理程序中的代码,但我不想复制它,所以我想只发送一个WM_SIZE消息。
你可能会这样做,但在我看来,这将是一个糟糕的设计。
更好的方法是将窗口WM_SIZE
处理程序中的代码移动到单独的函数中。然后,您可以从程序中的任何位置调用该函数,包括WM_SIZE
处理程序。
作为一般规则,您应该尽量避免将所有代码放在窗口过程中。如果你采用这种方法,你会发现你的窗口程序成了一个巨大的代码墙,你很难阅读和理解它。正如您所发现的那样,以这种方式重新使用代码变得很困难。尝试将窗口过程的所有情况移动到单独的函数中。然后窗口过程只是打开消息并调用那些单独的函数。
答案 1 :(得分:0)
没有错,但更好的方法是使用SetWindowPos()使用正确的标记,它会调用<style>
.datepicker{z-index:1151 !important;}
</style>
而不是你。
答案 2 :(得分:0)
您始终可以通过编程方式发送或发布任何消息,它将由窗口过程处理。
但是你应该知道WM_SIZE只是系统发送的通知消息,告诉窗口它的大小被修改了。 发送该消息不会使窗口改变其大小。邮件通常在调用SetScrollPos
或MoveWindow
时发送。