以下讨论一些窗口的控制问题。也许对初学者很有用。
(1)主窗口最大化。程序启动后,窗口最大化。
可以用下列代码实现。在app.cpp中
的pMainFrame->ShowWindow(m_nCmdShow);后加上
pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);
可以实现。
(2)对于多文档来说,它的子窗口有如何最大化呢?
请提供代码。
(3)添加窗口标题。
很多初学者知道用下列代码
CFrameWnd* pWnd=GetParentFrame();
pWnd->SetWindowText(Title);
来添加窗口自己的标题,但发现表现得很不稳定,其实需要在childfrm.cpp中的PreCreateWindow加上下列代码:
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style &= ~(LONG) FWS_ADDTOTITLE;
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;
return TRUE;
}
就OK啦。
谁能回答第二个问题。
(1)主窗口最大化。程序启动后,窗口最大化。
可以用下列代码实现。在app.cpp中
的pMainFrame->ShowWindow(m_nCmdShow);后加上
pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);
可以实现。
(2)对于多文档来说,它的子窗口有如何最大化呢?
请提供代码。
(3)添加窗口标题。
很多初学者知道用下列代码
CFrameWnd* pWnd=GetParentFrame();
pWnd->SetWindowText(Title);
来添加窗口自己的标题,但发现表现得很不稳定,其实需要在childfrm.cpp中的PreCreateWindow加上下列代码:
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style &= ~(LONG) FWS_ADDTOTITLE;
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;
return TRUE;
}
就OK啦。
谁能回答第二个问题。
{
CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED);
}
class My:public CFrameWnd
{public:
afx_msg void OnPaint()
{CPaintDCpaintDC(this);
paintDC.TextOut(0,0,"这是我的第一个窗口");
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(My,DFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
class Hello:public CWinApp
{ public:
Hello():CWinApp("Hello World!")
{}
BOOL InitInstance()
{ CFrameWnd *My=new My;
m_pMainWnd=My;
My->Create (NULL,(LPCTSTR)"Hello");
My->ShowWindow (SW_SHWO);
return TRUE;
}
} HelloWorld;
运行时出错,在最后行,我不知道怎么发表新文章就我样发了请回信至:[email protected]
谢谢!