Activex控件的子线程新开窗口的问题
遇到一个问题,做了一个的ocx控件,主线程有窗口,同时还在子线程中调用CreateWindow创建窗口,遇到的现象就是createwindow有时会没有返回值,消息循环能够收到wm_create,wm_move,wm_size这三个消息。不知道是什么原因导致的?或者说有没有什么有效的方法,来实现子线程里创建窗口的目的?
网上找到一篇文章:http://support.microsoft.com/kb/157437
貌似所有的ActiveX 都是 STA类型,是由主线程处理消息,如果在ActiveX用CreateThread 创建新的线程,这个线程是不能收到系统消息的,所以用createwindow不响应。所有的界面,窗口都必须在主线程创建。子线程可以往主线程窗口发送消息。
确实如此吗?如果确实如此,那为什么有时候可以有时不行?