关于OCX控件界面的2个问题(奉送50分)
1。如何控制自己定义的OCX控件大小?
2。如何在控件表面上在指定位置显示特定的信息?
问题点数:50、回复次数:18Top
1 楼Hidy(Hidy)回复于 2000-12-08 14:06:00 得分 0
1.在 OnSize 里改变尺寸,或在 Pre???Window 里指定不行吗?
2.在 OnDraw 里用 TextOut 呗Top
2 楼goodthingxu(白开心帅)回复于 2000-12-08 14:19:00 得分 0
能具体点吗?最好给些代码。
我在ONDRAW中无法控制其界面大小,而且控件中显示的信息位置在VB与VC中调用时是不一样的,
我估计是坐标系统问题。Top
3 楼goodthingxu(白开心帅)回复于 2000-12-08 18:28:00 得分 0
没人会吗???Top
4 楼zhuoran(卓然)回复于 2000-12-08 20:08:00 得分 10
你用的是什么容器,是不是IE。
OCX控件在创建窗口时是用的CreateControlWindow方法,在OnCreateClient中调用。这时候可以指定窗口大小,但不是要你直接重载。具体方法你答复后再说,我指的是MFC环境,不是ATL.Top
5 楼oldsunrain()回复于 2000-12-08 21:23:00 得分 20
1、对第一个问题:
这可是我的sunrain activex 中的源码!
在OnDraw()里加入:
///////////////////////////////////////以下代码将是控件的尺寸总是24*24
int pcx;
int pcy;
GetControlSize( &pcx, &pcy );
if(pcx!=24||pcy!=24)
{
SetControlSize(24,24);
}
//////////////////////////////////////
根本不用理会OnSize(),你改变控件大小的时候必然会自动触发OnDraw().
对第二个问题:
你要显示什么?图?字?Top
6 楼goodthingxu(白开心帅)回复于 2000-12-11 10:06:00 得分 0
to oldsunrain:
我想在固化的控件界面中显示特定的图标和相应的文字说明,需要指定位置。
不知该如何写才好?
Top
7 楼goodthingxu(白开心帅)回复于 2000-12-12 09:32:00 得分 0
难道没人作过吗???Top
8 楼loutingyv(打倒轮子)回复于 2000-12-12 20:33:00 得分 20
1.固定尺寸
BOOL CmyCtrl::OnSetExtent( LPSIZEL lpSizeL )
{
SIZEL sizeL;
CDC cdc;
cdc.CreateCompatibleDC( NULL );
CSize size( 200, 200 );
cdc.DPtoHIMETRIC( &size );
sizeL.cx = size.cx;
sizeL.cy = size.cy;
// Call the parent implementation
return COleControl::OnSetExtent( &sizeL );
}
2.
textout (x,y,...)
or drawtext(..)
记着给分。
Top
9 楼goodthingxu(白开心帅)回复于 2000-12-13 10:40:00 得分 0
to loutingyv:
初显控件大小能控制,但如何使其边框不能改变呢?而且在VB中(VC中OK)初现时显示的内容位置没能按设想的显示,这个textout (x,y,...)的X,Y位置好象是以主边框左上为基点的,如何让XY是以控件左上点为基点来显示呢?应该是坐标参考点的问题。可我不知如何来定位。你能帮我吗?
分数我一定会给的。
Top
10 楼loutingyv(打倒轮子)回复于 2000-12-13 16:00:00 得分 0
xy 用dpltolp转换一下试试
或者用screetoclient
或者发个email 给我loutingyu@yeah.netTop
11 楼goodthingxu(白开心帅)回复于 2000-12-13 18:33:00 得分 0
to loutingyv:
您要原代码还是只要个地址给我个例子???Top
12 楼goodthingxu(白开心帅)回复于 2000-12-13 20:18:00 得分 0
真的没人会吗???Top
13 楼loutingyv(打倒轮子)回复于 2000-12-14 09:02:00 得分 0
我用textout可以实现呀
它的xy就是相对于控件的坐标Top
14 楼goodthingxu(白开心帅)回复于 2000-12-14 09:34:00 得分 0
to loutingyv:
控件在VC中表现还可以,但在VB中显示是乱的。真不知何故?Top
15 楼loutingyv(打倒轮子)回复于 2000-12-14 16:59:00 得分 0
vb有一个项是调坐标应射方式的,我估计是这个原因
具体在哪里调,我也不清楚,我不太熟悉VB
Top
16 楼loutingyv(打倒轮子)回复于 2000-12-14 17:02:00 得分 0
还有你送的狗太小了,不够我塞牙
下次送《一生所爱》的歌词给我
Top
17 楼goodthingxu(白开心帅)回复于 2000-12-14 17:24:00 得分 0
呵呵 ~~~Top
18 楼goodthingxu(白开心帅)回复于 2000-12-14 17:37:00 得分 0
ok!这个问题到此结束。估计要成为历史遗留问题了。:)Top




