阅读:2331回复:6
这里的MapControl大小可以改变吗?
<P>如图所示,我希望PagelayoutControl和MapControl以及TOCControl交界的线可以任意拖动,改变大小,请问该怎么作?</P>
<P> |
|
1楼#
发布于:2006-03-28 12:19
使用控件,或者自己编写程序实现
|
|
|
2楼#
发布于:2006-03-29 12:41
<P>一般可以在中间放一个Label来做</P>
|
|
|
3楼#
发布于:2006-03-29 15:50
<P>这是我自己研究的,调用了API,把代码粘贴过去应该可以直接使用(记得先创建两个text),不过有一个问题希望熟悉API的前辈们能帮忙解决一下,就是:</P>
<P>text1拖动的时候text2并没有跟着变,只有当mouse_Up以后,text2才会过来,我觉得和WM_NCLBUTTONDOWN 这个常量有关,但是我又找不到合适的"代替品",把代码放到Mouse_Move里也有些问题,希望大家可以帮忙解决一下</P> <P>Private Declare Function ReleaseCapture Lib "user32" () As Long<BR>Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long<BR>Private Const HTLEFT = 10<BR>Private Const HTRIGHT = 11<BR>Private Const WM_NCLBUTTONDOWN = ;HA1</P> <P>Private Sub Form_Load()<BR> Text2.Left = Text1.Left + Text1.Width<BR>End Sub</P> <P>Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)<BR> Dim W1 As Long, W2 As Long<BR> Dim nParam As Long<BR> W1 = Text1.Width<BR> With Text1<BR> If X > .Width - 150 And X < .Width Then<BR> nParam = HTRIGHT<BR> End If<BR> If nParam Then</P> <P> Text1.MousePointer = 9 '双向箭头<BR> Call ReleaseCapture<BR> Call SendMessage(.hwnd, WM_NCLBUTTONDOWN, nParam, 0)<BR> <BR> 'Text2会随着Text1的变化而左右变动<BR> Text2.Left = Text1.Left + Text1.Width<BR> '确保2个text的总宽度不变<BR> W2 = W1 - Text1.Width<BR> Text2.Width = Text2.Width + W2<BR> End If<BR> End With</P> <P>End Sub</P> <P>Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)<BR> '鼠标移到交界的地方就变成双向箭头<BR> If (X > 0 And X < 0) Or (X > Text1.Width - 150 And X < Text1.Width) Then<BR> Text1.MousePointer = 9<BR> Else<BR> Text1.MousePointer = 0<BR> End If</P> <P>End Sub</P> <P>这里没有用AE的东西,纯粹就是VB的代码,控件是一个form上并排放了两个text,不过因为我不会在回帖中贴图,界面就没办法上传了,还希望谁能教我一下</P><img src="images/post/smile/dvbbs/em12.gif" /><img src="images/post/smile/dvbbs/em12.gif" /><img src="images/post/smile/dvbbs/em12.gif" /> |
|
4楼#
发布于:2006-03-30 21:30
<P>如3楼所说的,没有必要像我上面写的这么麻烦,其实只要加一个label或是picture就可以了,只是边界的处理需要调整一下,代码不多,大家可以自己写一下,非常简单的</P>
|
|
5楼#
发布于:2006-04-05 09:15
最简单的办法就是使用第三方的控件!
|
|
6楼#
发布于:2006-04-09 10:20
<P>在.net 下最好了,用spliter控件,然后设置各个控件的docking属性就 行了</P>
|
|