有一个内部成员变量CButton m_btn;,判断该按钮是否被创建的方法:
1.
定义一个全局变量bool m_bIsCreate;
2.
定义一个static局部变量。
static bool bIsCreate = false;//只会被初始化一次
if(!bIsCreate)
{
m_btn.Create("添加", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, CRect(0,0,100,100), this,100);
bIsCreate=true;
}
else
{
m_btn.DestoryWindow();
bIsCreate=false;
}
3.
m_btn中有一个内部成员变量m_hwnd,保存了与m_btn相关的句柄,当m_btn与窗口相关联的时候,m_hwnd就不为NULL了。因此可以根据m_hwnd变量来判断m_btn这个按钮有没有被创建。
代码如下:
if(!m_btn.m_hwnd)
{
m_btn.Create("添加", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, CRect(0,0,100,100), this,100);
}
else
{
m_btn.DestoryWindow();
}
WS_CHILD表示生成的窗口是母窗口的子窗口,它与WS_POPUP对应的,区别是:
WS_CHILD生成的窗口,只有当前窗口(子窗口)关闭了,焦点才能回到母窗口,而POPUP则2个窗口可以分开操作。
一个简单的例子就是:你可以创建桌面的POPUP窗口,但不能创建桌面的CHILD窗口。
转自:http://zhidao.baidu.com/link?url=xBTNbKkKRnntEgFdggi1mLlT7pFsGLJQCtMEWWea3u0Qq2o1JLUmGuPPxKQrqckCXl6tNjI3cbtZW_f-qhUrUa