怎么将mfc对话框右上角的关闭按钮还原?

狰鸩的快乐 2019-09-26 01:17:06
新手小白一枚,创建mfc对话框的时候不知道怎么把右上角关闭按钮弄没了,现在想加回来,不知道怎么办,求大佬帮助!用的VS2017
...全文
243 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
狰鸩的快乐 2019-09-26
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:

BOOL CMainFrame::ChangeDlgStyle(int resInt)
{
HINSTANCE hInst=AfxFindResourceHandle(MAKEINTRESOURCE(resInt),RT_DIALOG);
HRSRC hRes=::FindResource(hInst,MAKEINTRESOURCE(resInt),RT_DIALOG);
DWORD sz = ::SizeofResource(hInst, hRes);// 284
HGLOBAL hTemplate=::LoadResource(hInst,hRes);
DLGTEMPLATEEX *pTemplate=(DLGTEMPLATEEX *)LockResource(hTemplate);
HWND hDlg=0;
BYTE *pByte=new BYTE[sz];
//
if(pTemplate->signature==0xFFFF)
{//ex
DLGTEMPLATEEX *pNewTmp=(DLGTEMPLATEEX *)lpdwAlign((LPDWORD)pByte);
CopyMemory(pNewTmp,pTemplate,sz);
pNewTmp->style &= ~WS_CAPTION;
pNewTmp->style &= ~DS_MODALFRAME;
pNewTmp->style &= ~WS_POPUP;
pNewTmp->style &= ~WS_VISIBLE;
pNewTmp->style |= WS_BORDER;
pNewTmp->style |= WS_CHILD;
hDlg= CreateDialogIndirect(hInst, // handle to application instance
(const DLGTEMPLATE *)pNewTmp, // pointer to dialog box template
this->m_hWnd, // handle to owner window
0); // pointer to dialog box procedure
}
else
{//
DLGTEMPLATE *pNewTmp=(DLGTEMPLATE *)lpdwAlign((LPDWORD)pByte);
CopyMemory(pNewTmp,pTemplate,sz);
pNewTmp->style &= ~WS_CAPTION;
pNewTmp->style &= ~DS_MODALFRAME;
pNewTmp->style &= ~WS_POPUP;
pNewTmp->style &= ~WS_VISIBLE;
pNewTmp->style |= WS_BORDER;
pNewTmp->style |= WS_CHILD;
hDlg= CreateDialogIndirect(hInst, // handle to application instance
(const DLGTEMPLATE *)pNewTmp, // pointer to dialog box template
this->m_hWnd, // handle to owner window
0); // pointer to dialog box procedure
}
UnlockResource(hTemplate);
FreeResource(hTemplate);
delete [] pByte;
//
if(hDlg)
{
m_Dlg.SubclassWindow(hDlg);
CRect rc;
GetClientRect(&rc);
CRect tbRc;
m_wndToolBar.GetToolBarCtrl().GetWindowRect(&tbRc);// h=26
CRect sbRc;
m_wndStatusBar.GetStatusBarCtrl().GetWindowRect(&sbRc);// h=25
// view border 2
m_Dlg.MoveWindow(0,tbRc.Height()-1,rc.Width(),rc.Height()-tbRc.Height()-sbRc.Height()+1,FALSE);
m_Dlg.ShowWindow(SW_SHOW);
return TRUE;
}
return FALSE;
}



谢谢大佬,已经解决了,system menu不知道什么时候关了,打开就好了...
schlafenhamster 2019-09-26
  • 打赏
  • 举报
回复

BOOL CMainFrame::ChangeDlgStyle(int resInt)
{
HINSTANCE hInst=AfxFindResourceHandle(MAKEINTRESOURCE(resInt),RT_DIALOG);
HRSRC hRes=::FindResource(hInst,MAKEINTRESOURCE(resInt),RT_DIALOG);
DWORD sz = ::SizeofResource(hInst, hRes);// 284
HGLOBAL hTemplate=::LoadResource(hInst,hRes);
DLGTEMPLATEEX *pTemplate=(DLGTEMPLATEEX *)LockResource(hTemplate);
HWND hDlg=0;
BYTE *pByte=new BYTE[sz];
//
if(pTemplate->signature==0xFFFF)
{//ex
DLGTEMPLATEEX *pNewTmp=(DLGTEMPLATEEX *)lpdwAlign((LPDWORD)pByte);
CopyMemory(pNewTmp,pTemplate,sz);
pNewTmp->style &= ~WS_CAPTION;
pNewTmp->style &= ~DS_MODALFRAME;
pNewTmp->style &= ~WS_POPUP;
pNewTmp->style &= ~WS_VISIBLE;
pNewTmp->style |= WS_BORDER;
pNewTmp->style |= WS_CHILD;
hDlg= CreateDialogIndirect(hInst, // handle to application instance
(const DLGTEMPLATE *)pNewTmp, // pointer to dialog box template
this->m_hWnd, // handle to owner window
0); // pointer to dialog box procedure
}
else
{//
DLGTEMPLATE *pNewTmp=(DLGTEMPLATE *)lpdwAlign((LPDWORD)pByte);
CopyMemory(pNewTmp,pTemplate,sz);
pNewTmp->style &= ~WS_CAPTION;
pNewTmp->style &= ~DS_MODALFRAME;
pNewTmp->style &= ~WS_POPUP;
pNewTmp->style &= ~WS_VISIBLE;
pNewTmp->style |= WS_BORDER;
pNewTmp->style |= WS_CHILD;
hDlg= CreateDialogIndirect(hInst, // handle to application instance
(const DLGTEMPLATE *)pNewTmp, // pointer to dialog box template
this->m_hWnd, // handle to owner window
0); // pointer to dialog box procedure
}
UnlockResource(hTemplate);
FreeResource(hTemplate);
delete [] pByte;
//
if(hDlg)
{
m_Dlg.SubclassWindow(hDlg);
CRect rc;
GetClientRect(&rc);
CRect tbRc;
m_wndToolBar.GetToolBarCtrl().GetWindowRect(&tbRc);// h=26
CRect sbRc;
m_wndStatusBar.GetStatusBarCtrl().GetWindowRect(&sbRc);// h=25
// view border 2
m_Dlg.MoveWindow(0,tbRc.Height()-1,rc.Width(),rc.Height()-tbRc.Height()-sbRc.Height()+1,FALSE);
m_Dlg.ShowWindow(SW_SHOW);
return TRUE;
}
return FALSE;
}

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧