单文档(SDI)、多文档(MDI)框架的应用汇总文件.

前言:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值