首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

200分问一个关于Setparent 和 按键消息的有关问题

2012-10-16 
200分问一个关于Setparent 和 按键消息的问题内容比较长, 请各位大侠听我慢慢描述我有第一个程序, 是一个o

200分问一个关于Setparent 和 按键消息的问题
内容比较长, 请各位大侠听我慢慢描述

我有第一个程序, 是一个ocx, 上面有个 class(TActiveForm, IxyForm)

这个窗体上是空空的

这个窗体启动的时候 执行了下面一段代码

Delphi(Pascal) code
 ShellExecute(0,'open',PChar(szPath),PChar(szParameters),PChar(szWorkDir),SW_SHOW);


szPath 是 第二个程序的文件名
szWorkDir 是 第二个程序的工作路径
szParameters 是参数, 其实就是 self.hanlde 自身的句柄

//================================================================

这个时候第二个程序启动, 第二个程序是一个普通的无窗口程序

C/C++ code
        ::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分

[解决办法]
既然SetParent自己到了ocx上,这时候有点像人质了,还能做“大哥”吗?你提供的连接不是没答案,是楼主无良,得到一楼回复就跑了,没见他的结贴率是0的吗?
[解决办法]
经过测试,
SetWindowLong(Form2.Handle, GWL_STYLE,WS_POPUP);
通过……

热点排行