创建窗口可不可以SDK和MFC一起用?
主窗口是用SDK的RegisterClass和CreateWindowEx创建的,但是子窗口我用SPY++看,类名是“AfxMDIFrame42s”,据我所知带“Afx”应该是MFC内部注册窗口类时用上的,这样看来子窗口就是用MFC的函数创建的,我觉得应该创建的是MDI窗口。我试着创立一个"Win32 Application"类型的工程并加入MFC的支持,用SDK创建了一个全屏的主窗口,成功创建后用CMDIFrameWnd派生一个类后调用成员函数CreateEx,把主窗口的句柄做为参数传递。结果报错
请问这样做是不是可行?我对AfxMDIFrame42s的理解是不是正确的?代码如下:其中主窗口肯定创建成功了,hwnd是其句柄。
HWND hwnd;
CMyMdiFrame* pFrameWnd;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
PSTR lpCmdLine,int nShowCmd)
{
MSG msg;
if(!InitApplication(hInstance))
return FALSE;
if(!InitInstance(hInstance,nShowCmd))
return FALSE;
pFrameWnd = new CMyMdiFrame();
CWnd* pWnd = CWnd::FromHandle(hwnd);
pFrameWnd->CreateEx(WS_EX_LEFT|WS_EX_LTRREADING|WS_EX_RIGHTSCROLLBAR,
NULL,NULL,
WS_EX_LEFT|WS_EX_LTRREADING|WS_EX_RIGHTSCROLLBAR,
rect,pWnd,AFX_IDW_PANE_FIRST,NULL);
while(GetMessage(&msg,hwnd,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}