关于对话框的问题 我做了个对话框(MFC),然后想从对话框中,再点击菜单弹出子对话框但我现在发现这个弹出的子对话框不能被激活,就是它不能响应鼠标和键盘的动作,问题一般出在哪?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CDialog * pDlg = new CDialog;if(pDlg){ pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOWNORMAL);} 你可以先在MFC中添加一个新的对话框,然后在按钮事件中添加 CTestDlg test;//ctestdlg 是新对话框的类test.domodule(); 同意二楼的,设置一下ShowWindow函数的参数啦,SW_SHOWMAXINIZE-最大化,SW_HOWNORMAL正常显示。 #if !defined(AFX_OPEN_H__61BF9A2E_6187_49C4_A144_055E6582E1B5__INCLUDED_)#define AFX_OPEN_H__61BF9A2E_6187_49C4_A144_055E6582E1B5__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// open.h : header file///////////////////////////////////////////////////////////////////////////////// open dialogclass open : public CFileDialog{ DECLARE_DYNAMIC(open)public: open(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL);protected: //{{AFX_MSG(open) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG DECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_OPEN_H__61BF9A2E_6187_49C4_A144_055E6582E1B5__INCLUDED_)#include "stdafx.h"#include "luxi.h"#include "open.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// openIMPLEMENT_DYNAMIC(open, CFileDialog)open::open(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd){}BEGIN_MESSAGE_MAP(open, CFileDialog) //{{AFX_MSG_MAP(open) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAPEND_MESSAGE_MAP()BOOL CLuxiDlg::OnCommand(WPARAM wParam, LPARAM lParam) { POINT l; l.x=LOWORD(lParam); l.y=HIWORD(lParam); // TODO: Add your specialized code here and/or call the base class int nID=LOWORD(wParam);switch(nID) { case ID_MENUITEM32771: //fileopen.; Input open;//创建对话框实例 open.DoModal();//调用对话框 // open.EnableWindow(1); //CLuxiDlg::MessageBox("kl","l",IDD_DIALOG1); AfxMessageBox("sakfdgshg"); // DialogBox(AfxGetApp(),"ff","KJ"); //CLuxiDlg::GetSystemMenu(1); } return CDialog::OnCommand(wParam, lParam);}是上面这样子的有邮箱可以打包发过去,望能帮改一下 CDialog * pDlg = new CDialog;if(pDlg){ pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOWNORMAL);}这段代码加到哪里?? CDialog * pDlg = new CDialog;if(pDlg){ pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOWNORMAL);}或CCTestDlg TestDlg;TestDlg.DoModal();直接加在你"点击菜单"处理的地方就可以了 在各位大侠的帮助下终于解决了,我的作法是把要创建的对话框的style设为overlapped.但是不知道为什么是这样,所以继续拿出来 讨论. 符合文档编程就是调用ActiveX吗? VC能对word/excel编程吗? vc 怎样获得当前DNS 的IP 如何枚举windows操作系统内所有的国家地区名称? 坐了10几个小时的火车,平安到达广州,而且没有发烧咳嗽现象,散分 请教:如何用vc来读取BIOS中的信息? MFC和delphi有冲突,如何解决 Windows CE 请问哪里有VC下载? 关于COM+通信 程序都有那就种方法得到 客户窗口的句柄 VC与PHP通讯 在Microsoft Visual Studio .NET 2003中做c++为什么#include "iostream.h"就出错呀??
if(pDlg)
{
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOWNORMAL);
}
test.domodule();
#define AFX_OPEN_H__61BF9A2E_6187_49C4_A144_055E6582E1B5__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// open.h : header file
///////////////////////////////////////////////////////////////////////////////
// open dialogclass open : public CFileDialog
{
DECLARE_DYNAMIC(open)public:
open(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL);protected:
//{{AFX_MSG(open)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_OPEN_H__61BF9A2E_6187_49C4_A144_055E6582E1B5__INCLUDED_)#include "stdafx.h"
#include "luxi.h"
#include "open.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// openIMPLEMENT_DYNAMIC(open, CFileDialog)open::open(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
}
BEGIN_MESSAGE_MAP(open, CFileDialog)
//{{AFX_MSG_MAP(open)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()BOOL CLuxiDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
POINT l;
l.x=LOWORD(lParam);
l.y=HIWORD(lParam);
// TODO: Add your specialized code here and/or call the base class
int nID=LOWORD(wParam);
switch(nID)
{
case ID_MENUITEM32771:
//fileopen.;
Input open;//创建对话框实例
open.DoModal();//调用对话框
// open.EnableWindow(1);
//CLuxiDlg::MessageBox("kl","l",IDD_DIALOG1);
AfxMessageBox("sakfdgshg");
// DialogBox(AfxGetApp(),"ff","KJ");
//CLuxiDlg::GetSystemMenu(1);
}
return CDialog::OnCommand(wParam, lParam);
}
是上面这样子的
有邮箱可以打包发过去,望能帮改一下
if(pDlg)
{
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOWNORMAL);
}这段代码加到哪里??
if(pDlg)
{
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOWNORMAL);
}
或
CCTestDlg TestDlg;
TestDlg.DoModal();
直接加在你"点击菜单"处理的地方就可以了