请问如何由一个对话框资源创建一个子窗口??

doom 2000-12-12 01:27:00
如题
...全文
162 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Timesboy 2001-01-10
  • 打赏
  • 举报
回复
那还不简单,我给你发了个例子到你的信箱,看看行不行。。。
vcbear 2000-12-12
  • 打赏
  • 举报
回复
CDialog *pDlg = new CDialog;
pDlg->Create(IDD_DIALOG,this); //this is ParentWindow
pDlg->ShowWindow(SW_SHOWNORMAL)
doom 2000-12-12
  • 打赏
  • 举报
回复
还有其他方法吗?
vcbear 2000-12-12
  • 打赏
  • 举报
回复
参考MFC的CDialog::Create函数,能看懂吧

BOOL CDialog::Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd)
{
ASSERT(HIWORD(lpszTemplateName) == 0 ||
AfxIsValidString(lpszTemplateName));

m_lpszTemplateName = lpszTemplateName; // used for help
if (HIWORD(m_lpszTemplateName) == 0 && m_nIDHelp == 0)
m_nIDHelp = LOWORD((DWORD)m_lpszTemplateName);

#ifdef _DEBUG
if (!_AfxCheckDialogTemplate(lpszTemplateName, FALSE))
{
ASSERT(FALSE); // invalid dialog template name
PostNcDestroy(); // cleanup if Create fails too soon
return FALSE;
}
#endif //_DEBUG

HINSTANCE hInst = AfxFindResourceHandle(lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, lpszTemplateName, RT_DIALOG);
HGLOBAL hTemplate = LoadResource(hInst, hResource);
BOOL bResult = CreateIndirect(hTemplate, pParentWnd, hInst);
FreeResource(hTemplate);

return bResult;
}

2,586

社区成员

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

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