Posted on 2013-04-07 14:33
盛胜 阅读(360)
评论(0) 编辑 收藏 引用
vc 如何建动态按钮
在类的定义中,定义如下变量
那么在类的成员函数中就可以使用了如下来创建按钮。
- m_btn.Create("动态创建的按钮",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);
注,创建第二次的时候会出错。所以要用。
来释放再进行创建。
借由这个动态创建,弄清了一些MFC的构架,MFC是基于所有的类而得出的成果,一个类派生与另一个基类,从CWnd到CDialog就是一个很好的例子。CDialog派生与CWnd。
如果我要创建一个按钮,就必须用CDialog定义一个新的变量,这个变量就成了一个按钮,我就可以利用这个按钮类进行 各类操作,例如定义其的大小,风格。
皆由此可见,所有的窗口都是一个类定义来的。无论是按钮,标签,ComBox,List等等,都可以使用这个方法进行创建。
在编辑代码方面,VC与VB就有了,对于用户来说,就有了本质上的差别,VB的或许更加方便,而VC需要处理的细节太多了。
//创建按钮
CButton *m_pBt1 = new CButton();
ASSERT_VALID(m_pBt1);
m_pBt1-> Create(_T("进入[A]"), WS_GROUP ¦WS_CHILD ¦WS_VISIBLE ¦BS_PUSHBUTTON, CRect(10,10,20,20), this, IDC_AUTOCUT_POSTEACH );
m_pBt1-> MoveWindow(0, 152, 100, 100);
//修改风格
HWND hwnd=m_pBt1-> GetSafeHwnd();
long lStyle=GetWindowLong(hwnd,GWL_EXSTYLE);
SetWindowLong(hwnd,GWL_EXSTYLE,lStyle ¦WS_EX_DLGMODALFRAME);
::SetWindowPos(hwnd,0, 12, 55, 55, 111, SWP_NOREPOSITION ¦SWP_NOACTIVATE ¦SWP_NOMOVE ¦SWP_FRAMECHANGED);