内容比较长, 请各位大侠听我慢慢描述我有第一个程序, 是一个ocx, 上面有个 class(TActiveForm, IxyForm)这个窗体上是空空的这个窗体启动的时候 执行了下面一段代码 ShellExecute(0,'open',PChar(szPath),PChar(szParameters),PChar(szWorkDir),SW_SHOW);szPath 是 第二个程序的文件名
szWorkDir 是 第二个程序的工作路径
szParameters 是参数, 其实就是 self.hanlde 自身的句柄//================================================================这个时候第二个程序启动, 第二个程序是一个普通的无窗口程序
::SetWindowLong( (HWND)getHWND(),GWL_STYLE,WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN );
if( NULL == ::SetParent((HWND)getHWND(),g_hwndActiveX) )
{
return false;
}
第二个程序启动起来以后, 使用 SetParent 把自己 劫持到了 ocx上, 这样我的程序 就变成了一个网页程序
//================================================================现在是这样子的, 网页启动的时候 加载 ocx , ocx 启动 exe, exe 启动好了以后, 按键盘是可以正常使用的,比如按F1会放一个技能
但是只要随便点击 exe 的任何地方, 再按键盘, 就变成浏览器响应, 按F1 就弹出了浏览器的帮助.
百度了一下 : 发现了同样的一个问题:http://topic.csdn.net/u/20090214/13/32e25ce3-f0cd-4ae7-8d7e-701d0a66dedd.html 不过没答案//=================================================================
在线等. 有满意答案另给200分
szWorkDir 是 第二个程序的工作路径
szParameters 是参数, 其实就是 self.hanlde 自身的句柄//================================================================这个时候第二个程序启动, 第二个程序是一个普通的无窗口程序
::SetWindowLong( (HWND)getHWND(),GWL_STYLE,WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN );
if( NULL == ::SetParent((HWND)getHWND(),g_hwndActiveX) )
{
return false;
}
第二个程序启动起来以后, 使用 SetParent 把自己 劫持到了 ocx上, 这样我的程序 就变成了一个网页程序
//================================================================现在是这样子的, 网页启动的时候 加载 ocx , ocx 启动 exe, exe 启动好了以后, 按键盘是可以正常使用的,比如按F1会放一个技能
但是只要随便点击 exe 的任何地方, 再按键盘, 就变成浏览器响应, 按F1 就弹出了浏览器的帮助.
百度了一下 : 发现了同样的一个问题:http://topic.csdn.net/u/20090214/13/32e25ce3-f0cd-4ae7-8d7e-701d0a66dedd.html 不过没答案//=================================================================
在线等. 有满意答案另给200分
ocx 是我自己的程序啊.... 我自己的 我自己的..self.handle ...
可是遇到的问题是,这个时候的按键,被浏览器吃掉了... 比如按 F5, 直接就刷新了可以参考一下 惊天战神.. 我要做的就是这样的效果.
SetWindowLong(Form2.Handle, GWL_STYLE,WS_POPUP);
通过……