ATL 怎样创建非模态对话框? 我在工程中加入了一个ATL的 Dialog,基类是CAxDialogImpl,现在我只能用DoModald的方法来显示,但我想通过非模态的方式显示,应该怎样做呢?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我就是想知道怎样Create,CMYDlg.Create((HWND)this)编译不出错,但运行时出错,请说具体一点,我很菜!谢谢 高手可以指教一下吗?我的问题是,在MFC工程中加入ATL的Dialog之后,我想通过非模态的方式调用此对话框。 你可以先看一下wtl是如何创建非模态对话框的 其实我只是在调用Create函数时出问题,那位高手帮忙指导一下Create函数的用法就可以了,谢谢啊! 这个问题可以结了,你去学WindowsSDK,看SDK Dialog部分 其实我只是在调用Create函数时出问题,那位高手帮忙指导一下Create函数的用法就可以了,j就这样都不可以吗? Standard Windows programming looks something like this:HWND hWnd = ::CreateWindow( "button", "Click me", WS_CHILD, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL );::ShowWindow( hWnd, nCmdShow );::UpdateWindow( hWnd );The equivalent code using ATL's CWindow class isCWindow win;win.Create( "button", NULL, CWindow::rcDefault, "Click me", WS_CHILD );win.ShowWindow( nCmdShow );win.UpdateWindow(); 谢谢你啊!但我的对话框不是CWindow类,而是CAxDialogImpl ,他的Create函数应该怎样获得窗口的hWnd呢? 可以给对话框添加一个成员函数,在成员函数中写入下面代码。 if ( !::IsWindow(m_hWnd) ) Create( ::GetActiveWindow() ); ShowWindow(SW_SHOW);调用此成员函数,即可创建无模式对话框。 _Module.AddCreateWndData(&m_thunk.cd, (CDialogImplBase*)this); HWND hWnd = ::CreateDialogParam(g_hRes, MAKEINTRESOURCE(CAccountDlg::IDD), hWndParent, (DLGPROC)CMyDlg::StartDialogProc, NULL); CMYDlg.Create((HWND)this->m_hWnd);你的用法好像是对的。你看下其它的地方是否有错,引起这里错了。在看下,对话框应该不能是Client. SDK中的非模态对话窗体用CreateDialog来创建而不是Create,Create是CWindowImple/CDialogImple里的 如何编写网页自动填表单程序? 开机启动程序 修改键盘消息 收集有关频谱分析的资料及源码 引用寄存器 请问为什么打印BMP图像的时候同一个程序不同的打印机打出的图像不同? 各位老大帮帮忙,请问哪里有installer shield下载呀,请给出下载地址,在线等待中! @@@@@@@@@@@@@@模板类问题!很急!关注有分! 我的应用程序用CDaoDatabase 方式访问Access数据库,安装后不能脱离VC环境运行! 关于通过socket实现获取海康设备摄像数据流发送给客户端如何获取数据发送的问题 新人报导第一贴 VC中播放多媒体文件控件问题
编译不出错,但运行时出错,请说具体一点,我很菜!谢谢
HWND hWnd = ::CreateWindow( "button", "Click me",
WS_CHILD, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, NULL, NULL, hInstance, NULL );
::ShowWindow( hWnd, nCmdShow );
::UpdateWindow( hWnd );
The equivalent code using ATL's CWindow class is
CWindow win;
win.Create( "button", NULL, CWindow::rcDefault, "Click me",
WS_CHILD );
win.ShowWindow( nCmdShow );
win.UpdateWindow();
Create( ::GetActiveWindow() );
ShowWindow(SW_SHOW);调用此成员函数,即可创建无模式对话框。
HWND hWnd = ::CreateDialogParam(g_hRes,
MAKEINTRESOURCE(CAccountDlg::IDD),
hWndParent,
(DLGPROC)CMyDlg::StartDialogProc,
NULL);
在看下,对话框应该不能是Client.