属性页的OnInitDialog()函数中,看不到变量A啊?如何把A传过来?
解决方案 »
- directUI是不是这样的?
- 如何擦出窗口上的东西,并更新?
- 已经装了vc6.0,vc9.0,再装个vc7.0,不会有兼容性问题吧?
- SDK资源文本中用字符加入一个张图片
- ::PostMessage(hWndPrev,WM_UPDATA_CAIGOUFROMOLD,0,0)2003下运行正常在XP下报错
- InvalidateRect会导致WM_PAINT消息(穷啊,帮帮忙)
- 那位大侠帮帮忙,急需detect ping 的源代码!!!
- 关于SDK编程初学者的问题!(现回答出先得分,如若嫌分不够可要求另开贴给分)
- 在线等待:我的数据库只有data文件,没有log文件,怎么恢复?附加不行。
- !!!高手救命啊!!!
- 关于dll里 窗体问题 急在线等 高手不要吝啬哦
- 关于消息的映射的问题
1、把你的变量定义成全局变量,让它在你的实例的初始化函数中初始化。当然也可以在程序的任何部位进行访问或修改。
2、把你的对话框类的头文件包含入你的属性页的实现文件中,然后再使用:
(你的对话框类名*)AfxGetMainWnd()->A进行访问。 另外,A必须定义和初始化在属性页建立之前,否则程序将运行出错。所以,比较可靠的办法是第一种办法(因为我不能保证属性页和主对话框哪个先初始化,关键看你的属性页是在主对话框OnInitDialog函数中怎么初始化的,是定义在最后,还是CDialog::OnInitDialog()前)。
请问,怎样做比较好?
附:主对话框的OnInitDialog()函数BOOL CDLGDlg::OnInitDialog()
{
CDialog::OnInitDialog(); ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
} SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
// TODO: Add extra initialization here
m_MySheet.AddPage(&m_InPage1);
m_MySheet.AddPage(&m_InPage2);
m_MySheet.AddPage(&m_OutPage1);
m_MySheet.AddPage(&m_OutPage2); m_MySheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT);
return TRUE;
}
m_MySheet->SetActivePage(属性页号);
之前把变量A初始化,在属性页的
OnSetActive();
函数中获得对话框类的变量A。
就把A定义成全局变量好了
//一种定义全局变量的方法
在stdafx.cpp中定义如 bool bGlobalA;
在stdafx.h中 extern bool bGlobalA;//这样就可以在属性页初始化的时候根据A来判断了