赞
踩
前言:
App中:InitInstance Run ExitInstance.分别为程序的入口,运行.结尾函数.
单文档(SDI)
目录:
1.常用消息处理
1.应用举例:
1.常用消息处理:
WM_RBUTTONDOWN,截获实现视图右键菜单
2.应用举例:
创建一行两列的视图窗口,重写框架窗口函数:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
//将窗口分为1行2列
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
return FALSE;
}
if (!m_wndSplitter.CreateView(0, 0,pContext->m_pNewViewClass,
CSize(300,100), pContext) //创建第1行第1列的视图窗口
||
!m_wndSplitter.CreateView(0, 1,pContext->m_pNewViewClass,
CSize(400, 100), pContext)) //创建第1行第2列的视图窗口
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
}
框架窗口始终顶置:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) ON_WM_CREATE()
{
::SetWindowPos(m_hWnd, HWND_TOPMOST, -1, -1, -1, -1, SWP_NOMOVE | SWP_NOSIZE);
}
窗口不能拖动:
void CMainFrame::OnNcLButtonDown(UINT nHitTest, CPoint point) ON_WM_NCLBUTTONDOWN()
{
if (HTCAPTION == nHitTest)
{
return;
}
CFrameWnd::OnNcLButtonDown(nHitTest, point);
}
多文档(MDI)
目录:
1.应用举例.
1.应用举例
MDI:
Instance动作:
创建程序有登陆窗口,在这个函数创建.
若有子窗口,则在源代码中:
CCommandLineInfo cmdInfo;
//ParseCommandLine(cmdInfo); 删除这一行.
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; //不创建子窗口.
框架窗口显示出来的就是最大化:
//pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);
pMainFrame->UpdateWindow();
CChildFrame类:
修改子窗口类样式风格,使创建时候最大化;
virtual BOOL PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;
cs.style = cs.style | WS_MAXIMIZE | WS_VISIBLE;//子窗口最大化显示
return TRUE;
}
全屏显示框架窗口:
void CMainFrame::FullScreen() + void CMainFrame::noFullScreen() + void CFullScreenView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) 备注nChar == VK_F11
源码链接:http://download.csdn.net/detail/qq_24571549/9907050
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。