如何为类从CDialog派生的函数InitInstance()实现? MFC

时间:2015-06-08 18:55:35

标签: c++ visual-c++ mfc dialog

我有一个班级:

include<afxwin.h>
include<Winuser.h>
include<Windows.h>


HWND hwndOwner;

class CChildView :public CDialog
{
    DECLARE_DYNAMIC(CChildView)

public:

CChildView();
~CChildView();
afx_msg void OnPaint();
afx_msg void OnLevelProf();
afx_msg void OnLevelAmat();
afx_msg void OnLevelBeg();
afx_msg void OnStepC();
void new_game();

virtual BOOL InitInstance();
//void CloseWindow();
BOOL PreCreateWindow(CREATESTRUCT& cs);
int end_analyze();
void ii();
unsigned long calculate(int id, int x, int y);
afx_msg void OnNewGame();
//void Invalidate();
afx_msg void OnX1010();
afx_msg void OnX1919();
afx_msg void OnX3030();
afx_msg void OnX5050();
afx_msg void OnX100100();
//MessageBoxW();
void resize_window();
afx_msg void OnLButtonDown(UINT, CPoint xy);
//void GetWindowRect(RECT);
//int MessageBoxW();
 void OnStepH();
void set_chеcked_menu(unsigned int old_id, unsigned int new_id);
DECLARE_MESSAGE_MAP()

};

我应该如何在我的应用程序中实现方法InitInstance而不是在AfxWinMAin()中捕获NUllReferenceExeption?那就是我现在拥有的:

CChildView obj;

BOOL CChildView::InitInstance()
{
    INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);
    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls);

    obj.Create(L"dsa", nullptr);

    return FALSE;
}

我为了这个而做了一个oj

  

How to get rid of null reference

1 个答案:

答案 0 :(得分:0)

你问的是错误的问题。您需要将InitInstance实现为CWinApp类(或CWinAppEx)的成员。请参阅我之前问题的答案,以便轻松创建基于对话框的MFC应用程序,该应用程序将首先构建并运行。