怎么样在基于对话框的程序内调用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);






}

但是窗口并不显示,请问怎么做才行.
...全文
90 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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)
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-24 10:43
社区公告

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