如何把其他程序嵌入我的程序的panel中,让他在panel区域上运行?(100分)

  • 主题发起人 主题发起人 vastyellow
  • 开始时间 开始时间
V

vastyellow

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾,帮帮忙
 
100分,没人拿?简化一点,怎么能让OleContainer容纳下所有的对象类型,包括记事本之类的?
 
记事本又不是ole服务器
 
你用TFrame来显示一个olecontainer,然后再在窗体中放置一个panel,再把
TFrame放到panel上试试。
记事本不是ole服务器,你用word试试。
//上面的做法我没做过,只是提提看法。
 
真是古怪的问题,怎么弄出来的我也不知道,哈哈!

procedure TForm1.Button1Click(Sender: TObject);
var
h: hwnd;
a: integer;
begin
h := findwindow(nil, '未定标题 - 记事本');
if h <> 0 then showmessage('1');
windows.SetParent(h, self.handle);
a := getwindowlong(h, GWL_STYLE);
a := a or WS_CHILDWINDOW;
setwindowlong(h, GWL_STYLE, a);
end;

测试通过
 
这样notepad根本不能用的
 
或者模拟出这样一种效果也好
 
我有一个大前天的主意:
在桌面画个框,不就把notepad放进来了?[8D]
 
我认为你有这个必要吗?
 
很有必要,有时候需要模块化管理,同时又希望有一个好的结合的界面。
请大家讨论
 
自己做一个赶超WORD的编辑器都都比这简单一些,
我感觉这好比是又做了一个WINDOWS操作系统。
 
这样能用了。
var
h: hwnd;
a: integer;
begin
h := findwindow(nil, '未定标题 - 记事本');
if h <> 0 then showmessage('1');
windows.SetParent(h, self.handle);
//a := getwindowlong(h, GWL_STYLE);
//a := a or WS_CHILDWINDOW;
//setwindowlong(h, GWL_STYLE, a);
end;
 
不错可以,但如何去掉标题栏呢,就像BSNONE那种风格,
 
h := findwindow('notepad',nil);
改成这样比较好的。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部