动态增加按钮

来源:互联网 发布:java内存溢出排查 编辑:程序博客网 时间:2024/06/11 07:54

CObject
  --CCmdTarget
     --CWnd
       ---CButton


private:
 CButton m_btn;


 m_btn.Create("dddd",BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,CRect(0,0,100,100),this,43434);
 //这里最初的代码,当再次点击动态生成按钮时会出错,回为m_btn.Create创建了一个窗口,将按钮窗口与对象窗口关连在一起.当再次点击时重复创建.
 解决1:
 static BOOL bIsCreate=FALSE;//为静态变量或为成员变量.
 if(bIsCreate==FALSE)
 {
  m_btn.Create("dddd",BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,CRect(0,0,100,100),this,43434);
  bIsCreate=TRUE;
 }
 else
 {
  m_btn.DestroyWindow();
  bIsCreate=FALSE;
 }
 解决2:
 if(!m_btn.m_hWnd)
/**
CWnd::m_hWnd 
Remarks
The handle of the Windows window attached to this CWnd. The m_hWnd data member is a public variable of type HWND.
*/
 {
  m_btn.Create("dddd",BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,CRect(0,0,100,100),this,43434);
 }
 else
 {
  m_btn.DestroyWindow();
 }
 

原创粉丝点击