| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1658 人关注过本帖
标题:对话框的初始化问题
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:2 
对话框的初始化问题
CSockDlg::CSockDlg(CWnd* pParent /*=NULL*/) // 数据成员初始化
    : CDialog(CSockDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CSockDlg)
        // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
/////////////////////////////////////////////////////////////////////////////
// CSockDlg message handlers

BOOL CSockDlg::OnInitDialog() // 显示状态初始化
{
    CDialog::OnInitDialog();

    // Add "About..." menu item to system menu.

    // 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
}
今天认真看了 VC 向导自动产生的一个 MFC工程,突然发现其对对话框的初始化使用了两个函数
如上,分别是对数据成员和显示状态初始化,不知道微软工程师们怎么考虑这种软件架构模式,为什么要把初始化还分得这么的清晰呢?另外想知道这两个初始化函数的调用顺序?
搜索更多相关主题的帖子: 对话框 CSockDlg DATA handlers AFX 
2008-05-02 21:53
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
第二个问题已经解决,刚才别人根我说是 CSockDlg::CSockDlg(CWnd* pParent /*=NULL*/): CDialog(CSockDlg::IDD, pParent) // 数据成员初始化先进行
但是对于这两种初始化分开的考虑,还希望大家谈谈自己的看法
2008-05-02 21:55
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 
一个是类的构造函数,不是初始化函数,一个是(OnInitDialog)是初始化的消息处理函数,主要是针对控件的一些状态设置进行初始化,两者有本质的区别。
收到的鲜花
  • vfdff2008-05-03 23:50 送鲜花  3朵   附言:感谢答复

2008-05-03 11:28
快速回复:对话框的初始化问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019122 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved