想在WIN2000下的AUTOCAD R14实现全屏
想在WIN2000下的AUTOCAD R14实现全屏
公司的电脑屏幕很小,只好用全屏了。自己做了个程序,在WIN98下可以用,可是
在WIN2000下就不行了。
CAD可以调用ARX的程序,相当于DLL。
程序的想法是:
1。先做一个钩子。监视GETMINMAXINFO消息。
MsgHook=SetWindowsHookEx(WH_CALLWNDPROCRET,
Watch,//我的钩子函数
NULL,GetCurrentThreadId());
2。再改变窗口大小。
SetWindowPlacement(m_MainWnd,//CAD提供的窗口句柄
&m_FullScrPl);//计算出来的全屏位置。
运行结果,用spy++查看。
<00047>000800F8 S WM_WINDOWPOSCHANGING lpwp:039AFF20
//x:-4 y:-42 cx:808 cy:697
<00048>000800F8 S WM_GETMINMAXINFO lpmmi:039AFCC0
//ptReserved:160:24
//ptMaxSize:808,608
//ptMaxPosition:-4,-4
//ptMinTrackSize:112,27
//ptMaxTrackSize:812,612
<00049>000800F8 R WM_GETMINMAXINFO lpmmi:039AFB98
//ptReserved:160:24
//ptMaxSize:808,608
//ptMaxPosition:-4,-4
//ptMinTrackSize:200,100
//ptMaxTrackSize:808,697
<00050>000800F8 R WM_WINDOWPOSCHANGING
//x:-4 y:-42 cx:808 ****cy:612*****
//就是这里了。正确的cy应该是697,WM_GETMINMAXINFO的消息也改过来了。
//就是不对,我看了没装钩子时的消息,lpmmi的地址是一样的。不知道
//问题是不是这个原因。是不是DLL没有注入进程中啊。