在VC.NET上使用Class Wizard新建立一个 SDI,名字叫myKB(不选Document/View architecture support )。
默认有CAboutDlg :public CDialog
CChildView :public CWnd
CMainFrame :public CFrameWnd
CmyKBApp :public CWinApp
若是想使用CWnd::CreateEx建立窗口,应该怎么改?在什么地方添加什么函数?
我出学VC,请大师讲详细点!谢谢!
默认有CAboutDlg :public CDialog
CChildView :public CWnd
CMainFrame :public CFrameWnd
CmyKBApp :public CWinApp
若是想使用CWnd::CreateEx建立窗口,应该怎么改?在什么地方添加什么函数?
我出学VC,请大师讲详细点!谢谢!
MFC已经把它给封起来了,那个函数完成的功能。CWnd::Create()应该都能实现啊。
CWnd::Create()能实现吗?若是可以,怎么用?
还有,就是用CWnd::Create(),也得改变基类吧?
直接写到构造函数中就行了。
好像查 msdn
CString strWndClass = AfxRegisterWndClass (
0,
NULL,
(HBRUSH) (COLOR_3DFACE + 1),
AfxGetApp ()->LoadStandardIcon (IDI_WINLOGO)
);
CreateEx (0, strWndClass, _T ("Visual Keyboard"),
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL);
}
CreateEx是CWnd的,怎么能在CWinApp中调用呢?不明白!
他是在他的CMyDlg的函数中用的CreateEx(),它的CMyDlg必然基类于CDialog.那么CFrameWnd Cdialog CView都是由CWnd而来。看来你只好写到以这些类为基类的派生类中了。
CString strWndClass = AfxRegisterWndClass (
0,
NULL,
(HBRUSH) (COLOR_3DFACE + 1),
AfxGetApp ()->LoadStandardIcon (IDI_WINLOGO)
);
CreateEx (0, strWndClass, _T ("Visual Keyboard"),
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL);
}都应该添加到什么文件的什么位置?要去掉什么函数?
athere_08(于斯) :当然不是在哪里都可以.ClassWizard已经都添加了。注册,创建
都是在不同的地方,有的在CChildView,有的在CMainFrame中,所以我不知道该在那里
改