怎么样在基于对话框的程序内调用CreateWindow创建窗口

rocking8892 2008-04-24 10:43:03
我做了试验,在
void CRegularDllCallDlg::OnBnClickedAddWindow(){


HWND hWnd= CreateWindow(
"MainWClass", // name of window class
"Sample", // title-bar string
WS_OVERLAPPEDWINDOW, // top-level window
CW_USEDEFAULT, // default horizontal position
CW_USEDEFAULT, // default vertical position
CW_USEDEFAULT, // default width
CW_USEDEFAULT, // default height
//GetSafeHwnd(), // no owner window
//NULL,
(HWND) NULL,
//theApp.m_pMainWnd->m_hWnd,
// CWnd::GetParent()->m_hWnd,
//(HWND)this,
(HMENU) NULL, // use class menu
::GetModuleHandle("RegularDllCall.exe"), // handle to application instance
// AfxGetInstanceHandle(),

//AfxGetInstanceHandle(),

(LPVOID) NULL);



ShowWindow( SW_SHOW);






}

但是窗口并不显示,请问怎么做才行.
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
zoulie 2008-04-24
  • 打赏
  • 举报
回复
MainWClass 类有没有注册?
菜牛 2008-04-24
  • 打赏
  • 举报
回复
就算前面全对,ShowWindow( SW_SHOW); 这个是调用CRegularDllCallDlg::ShowWindow的,应该用::ShowWindow调用API的函数。

另外,在MFC中,直接从CWnd继承类来做就行了。
rocking8892 2008-04-24
  • 打赏
  • 举报
回复
对,是NULL
rocking8892 2008-04-24
  • 打赏
  • 举报
回复
HWND hWnd= CreateWindow(.........)
我调试了一下,反回是一个空值,这说明创建不成功啊
hastings 2008-04-24
  • 打赏
  • 举报
回复
hWnd是否为NULL?
wltg2001 2008-04-24
  • 打赏
  • 举报
回复
ShowWindow( SW_SHOW);
=======================
一般在这个API之后还要加上UpdateWindow(hwnd)才行.
hastings 2008-04-24
  • 打赏
  • 举报
回复
RegisterClass的返回值你也检测一下,是否为空
buyong 2008-04-24
  • 打赏
  • 举报
回复
WNDCLASSEX wc;
wc.lpszClassName = MainWClass;
wc.xxxx =xxxx;

RegisterClassEx(&wc)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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