int CMyCotrolCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (COleControl::OnCreate(lpCreateStruct) == -1) return -1;
}1、如果我想create 一个特定大小的控件,需要这么做呢,上面的代码create出来的是系统默认的,我需要自己定义的大小
需要怎么做?
非常感谢?2、定义了ctl_x, ctl_y, ctl_w, ctl_h, 4个属性,怎么把四个属性和控件关联起来呢 ??
当修改它们的稍后,控件大小或者位置会发生变化。
}1、如果我想create 一个特定大小的控件,需要这么做呢,上面的代码create出来的是系统默认的,我需要自己定义的大小
需要怎么做?
非常感谢?2、定义了ctl_x, ctl_y, ctl_w, ctl_h, 4个属性,怎么把四个属性和控件关联起来呢 ??
当修改它们的稍后,控件大小或者位置会发生变化。
解决方案 »
- SDK我该下哪一个
- vc6中,goto Definition 时总是出现这个提示,正常吗?如何设置能去除?(有图)
- 帮我看看基于winpcap的dns欺骗?
- 练习用钩子注入Dll运到的问题
- 求救,为什么我点对话框上那关闭按钮
- 关于internet API的问题
- CRecordset 连接access问题(在线等待)
- VC开发如何OFFIC,关于WORD的?
- 问个怪问题:窗口和消息存在什么样的关系(问题没解决,把分给光了,只好再问一遍了)
- MFC中用serialport类写的串口通信,想读取txt文件里面内容并逐行发送,求解决方法额
- MFC 初学文件操作
- 一个TCP程序可以创建的套接字数目最多是64吗?
lpCreateStruct->cx = xxx;
lpCreateStruct->cy = xxx;
if (COleControl::OnCreate(lpCreateStruct) == -1) return -1;
}
lpCreateStruct->cy = xxx;
if (COleControl::OnCreate(lpCreateStruct) == -1) return -1; 这个没有用,我已经试过了。谢谢。
估计是你在OnSize中又改回去了...
BOOL CMyCllipseCtrl::OnSetExtent(LPSIZEL lpSizel)
{
lpSizel->cx=xxx;
lpSizel->cy=xxx;
return COleControl::OnSetExtent(lpSizel);
} ATL
IOleObject::SetExtent
HRESULT hRet;
CComPtr<IOleInPlaceSite> spCtlSite;
RECT rect;
rect.bottom=xxx;
rect.right=xxx;
hRet = InternalGetSite(IID_IOleInPlaceSite, (void**)&spCtlSite);
if (SUCCEEDED(hRet))
{
if (spCtlSite != NULL)
{
hRet = spCtlSite->OnPosRectChange(&rect);
}
}
不能在构造函数中调用。放在初始化完成时或create完成后。
int height = 400; SetControlSize(width,height); RECT rect;
GetRectInContainer(&rect);
rect.right = rect.left + width;
rect.bottom = rect.top + height;
SetRectInContainer(&rect);
我是有个onsize 函数,不过是通过获取4个属性来变化的呀,所以,应该和前面的大小一样。不存在改不改回去的问题把?、
我是新手,非常感谢大家!!
继续关注中ctl_x, ctl_y, ctl_w, ctl_h, 四个属性来控制大小的,我会给这四个属性初始化,然后,
创建出来的控件想要自己定义的大小,而不是系统默认的大小。onsize变化是按这四个属性来的,所以,在没有改变这四个属性前,应该不会出现改回去的问题。描述了这么多,不知道大家明白没有,呵呵,语文太差了。
这个我刚刚看msdn,也发现了这个函数,等下试试。
还有就是,我怎么让我修改属性的值,让控件位置实时变化呢,
好像调用了那个函数也没有用,ivai control 这个函数,具体什么名字忘了。呵呵,不好意思。