BOOL C001Dlg::OnInitDialog()里的冲突怎么解决?

VC基于对话框界面,想在程序开始运行时,自动弹出一个登陆对话框,经过请教大虾们,得到了解决。BOOLCTry03Dlg::OnInitDialog(){...CTry03... VC基于对话框界面,想在程序开始运行时,自动弹出一个登陆对话框,经过请教大虾们,得到了解决。
BOOL CTry03Dlg::OnInitDialog()
{
...

CTry03Dlg7 dlg;//新创建的登录窗口
if(dlg.DoModal() == IDOK)
return TRUE;
else
return FALSE;
}

但是我之前对该对话框的静态文本字体也有设置
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
cfont.CreateFont(28, //字体大小
0,0,0,FW_NORMAL,
FALSE,FALSE,
0,
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, "华文楷体");
CWnd* pWnd = GetDlgItem(IDC_STATIC);
pWnd->SetFont(&cfont);
// IDM_ABOUTBOX must be in the system command range.
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);
}
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

于是我就把这两段代码合在一起了
BOOL CTry03Dlg::OnInitDialog()
{
CTry03Dlg7 dlg;//登录窗口
if(dlg.DoModal() == IDOK)
return TRUE;
else
return FALSE;

CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
cfont.CreateFont(28, //字体大小
0,0,0,FW_NORMAL,
FALSE,FALSE,
0,
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, "华文楷体");
CWnd* pWnd = GetDlgItem(IDC_STATIC);
pWnd->SetFont(&cfont);
...(下略)
}

运行起来就出问题了,只运行弹出对话框部分,字体变化就完全没有了,我该怎么办呀???

望大虾们赐教!
谢谢~
不好意思哦,我是初学者,有点反应迟钝的说...
我的程序是这样的,在主对话框.cpp里的OninitDialog()里有一段对主对话框字体设置代码1,之后我想加个登陆窗口(对该对话框字体没有要求),照网友们讲的,要在主对话框的OninitDialog()里面加代码2,,所以在OninitDialog()里面有两段代码,相互冲突了,请教解决方法,请详细点的。
非常感谢你,谢谢谢谢啊~~~~~wo
展开
 我来答
帐号已注销
2008-05-20 · TA获得超过143个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:170万
展开全部
字体可以作为全局变量。哪个对话框需要改字体,就在哪个对话框的OnInitialDialog函数里加入SetFont函数。
你的程序的问题在于,合并了两个OnInitialDialog函数之后,只有一个对话框在初始化时有SetFont,另一个没有,所以,与字体有关的代码不能合并。

我已经说的很清楚了,哪个对话框需要改字体,就在哪个对话框的OnInitialDialog函数里加入SetFont函数。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式