关于创建CEdit控件中的疑问。

vc_marger 2005-03-17 10:24:52
在用CEdit::Create创建控件时,有下面的疑问:
1.为什么创建的空间是平面的,没有立体的感觉,要怎样才能做到让它显示立体的效果?
2.创建时,控件ID,是一个什么样的概念,它有什么作用,最好举例说明下?
3.MoveWindow这个函数有什么作用?
4.为什么若同时创建多个控件,总是会重合在一起?
...全文
65 点赞 收藏 6
写回复
6 条回复
fisker0303 2005年03月18日
立体效果? 3D边框吗? 或者自己做子类化。
回复 点赞
zhiyong1822 2005年03月18日
应该不会有差异,如果有差异的话,也是出在你的控件类型设置上。
回复 点赞
zhiyong1822 2005年03月18日
2、动态创建的控件时,id就显得更重要了。id的作用是该控件的唯一标识,通过id可以对该控件进行
控制处理 CEdit *edit1=(CEdit*)GetDlgItem(id);以后就可以通过变量edit1对该控件进行处理了。
1、在virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID
);
中的类型中设置如edit1->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, CRect(10, 10, 100, 100), this, 1);当然在第一个参数中还可以更具需要设置
其他类型每个类型间用‘|’分开。
edit类型一般形式为ES_xxxx,和其父类的类型WS_xxxx.
3、MoveWindow()作用是为了改变窗口的位置和大小
他的函数声明形势
void MoveWindow(
int x,//x,y表示窗口左上角的坐标。
int y,
int nWidth,//下面两个表示其宽,高
int nHeight,
BOOL bRepaint = TRUE //表示是否接受 WM_PAINT 消息。
);
void MoveWindow(
LPCRECT lpRect,//表示窗口的矩形
BOOL bRepaint = TRUE
);
4、在建立控件的过程中把

edit1->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, CRect(10, 10, 100, 100), this, 1);
中的CRect(...)中不同控件它里面的值不要相同,如果设置的不好,就会重叠。
回复 点赞
vc_marger 2005年03月18日
fanqing,我指就是文本框它自身的一些设置,比如阴影效果什么的。用create创建出来的,跟直接划出来的有差异。
回复 点赞
fanqing 2005年03月18日
1.MoveWindow移动位置和设置大小
2.id可以理解为学号.用于识别对象
3.听说下一代操作系统会是立体的,届时你就可以使用.
现在除了他提供的边框有一些立体设置外,其余的你自己画吧.
回复 点赞
juststone 2005年03月18日
3.用来设置窗口(CEdit等)的位置和大小
4.在RECT参数设置
回复 点赞
发动态
发帖子
界面
创建于2007-09-28

7975

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告