MFC中的m_hwnd变量和WS_CHILD的作用、按钮是否被创建的判断

来源:互联网 发布:js混淆软件 编辑:程序博客网 时间:2024/05/16 07:57

有一个内部成员变量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

原创粉丝点击