📄 16629.html
字号:
<html>
<head>
<title>cww 兄! 相信你看到我的答案会吓一跳, 因为很简单就做出来了...</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>cww 兄! 相信你看到我的答案会吓一跳, 因为很简单就做出来了...</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:sephiroth@optimasoft.com.tw">Sephiroth</a> on August 04, 1999 at 17:12:42:<p>
In Reply to: <a href="16598.html">太难了</a> posted by cww on August 04, 1999 at 09:12:08:<p>
我想有很多人都被事物的外表所蒙蔽了, 大家会认为 TabControl<br>有几个 Container 呢?<br>由始自终我都是认为所有的控制项只有一个 Container. 做出实验如下:<br>随便找几种不同的 TabControl lay 到 Form 上面, 最好有 3rd party 的<br>以便互相验证. 然后放几个不同的 Control 到不同的 Tab 上面, 假设我放了<br>一个 Text1 在 Tab1, 一个 Command1 在 Tab2, 然后切换页, Text1 一定<br>不会跑到 Tab2 去, 可是这时候请大家按一下 F4, 看看其它页的那些元件<br>位置, 结果你会发现其它页的元件 .Left 都变成负数....<br>这样答案就呼之欲出了吧!! 之前我也想过是不是放个 Picture Box 在上面<br>然后做 ZOrder, 结果发现 Label 就放不上去了. TabControl 其实<br>用 VB 还蛮好写的, 主要难是难在那些 Contain Controls 的管理上, 那要<br>如何知道别人是怎么管理的? 最简单的方法是用 UltraEdit 打开 *.frm<br>看看他们 PropertyPag 到底是怎么存的不就知道了.<p>这或许可称之为逆向思考吧! 原理是不是蛮简单的. 至于实作时, 必须去 SubClass<br>UserControl 的 WM_LBUTTONDOWN 这个讯息, 来做子元件的加入及删除. <br>或许将来弟的网页生出来时会放上去吧, 不过要先用这一招来赚钱说 :p<p>第二个问题, 打死你都不相信, 我也是在写 TabControl 时,突发奇想<br>然后猛找 MSDN, 看看有没有这种 API, 后来灵光一闪呼叫出 Spy++,<br>让你猜我要做什么?<p>用 Spy++ 把所有可当成 Container 的元件都测一遍, 发现它们都有 WS_CLIPCHILDREN<br>这个值(其实不用测, 用想的也早该想到了), 然后再用 GetWindowLong 去<br>做两次 AND 运算答案就出来了, 是不是比上一题更简单. 只是没有人想过<br>会有这种奇招罢了!<p>ps. 我已经找到徒弟了, 看来要好好的 "照顾照顾" 一番, 哈!!<br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 16629-->
</ul><!--end: 16629-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -