当前位置: 首页>>代码示例>>C++>>正文


C++ CVirtualConsole::GetView方法代码示例

本文整理汇总了C++中CVirtualConsole::GetView方法的典型用法代码示例。如果您正苦于以下问题:C++ CVirtualConsole::GetView方法的具体用法?C++ CVirtualConsole::GetView怎么用?C++ CVirtualConsole::GetView使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CVirtualConsole的用法示例。


在下文中一共展示了CVirtualConsole::GetView方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: BackWndProc

LRESULT CConEmuChild::BackWndProc(HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam)
{
    LRESULT result = 0;

    // Logger
    MSG msgStr = {hWnd, messg, wParam, lParam};
    ConEmuMsgLogger::Log(msgStr, ConEmuMsgLogger::msgBack);

    if (gpSetCls->isAdvLogging >= 4)
    {
        gpConEmu->LogMessage(hWnd, messg, wParam, lParam);
    }

    CVConGuard guard;
    CVirtualConsole* pVCon = NULL;
    if (messg == WM_CREATE || messg == WM_NCCREATE)
    {
        LPCREATESTRUCT lp = (LPCREATESTRUCT)lParam;
        guard = (CVirtualConsole*)lp->lpCreateParams;
        pVCon = guard.VCon();
        if (pVCon)
            gVConBkMap.Set(hWnd, pVCon);
    }
    else if (hWnd != ghBkInDestroing)
    {
        if (!gVConBkMap.Get(hWnd, &pVCon) || !guard.Attach(pVCon))
            pVCon = NULL;
    }

    if (messg == WM_SYSCHAR)
    {
        _ASSERTE(FALSE); // по идее, фокуса тут быть не должно
        // Чтобы не пищало
        result = TRUE;
        goto wrap;
    }

    if (!pVCon)
    {
        _ASSERTE(pVCon!=NULL || hWnd==ghBkInDestroing);
        result = DefWindowProc(hWnd, messg, wParam, lParam);
        goto wrap;
    }

    switch (messg)
    {
    case WM_SHOWWINDOW:
            if (wParam)
            {
                HWND hView = pVCon->GetView();
                SetWindowPos(hView, HWND_TOP, 0, 0, 0,0, SWP_NOSIZE|SWP_NOMOVE);
                SetWindowPos(hWnd, hView, 0, 0, 0,0, SWP_NOSIZE|SWP_NOMOVE);
            }
            break; // DefaultProc
        case WM_SETFOCUS:
            // Если в консоли работает "GUI" окно (GUI режим), то фокус нужно отдать туда.
            {
                // Фокус должен быть в главном окне! За исключением случая работы в GUI режиме.
                pVCon->setFocus();
            }
            return 0;
        case WM_ERASEBKGND:
            result = 0;
            break;
        case WM_PAINT:
            _ASSERTE(hWnd == pVCon->mh_WndBack);
            pVCon->OnPaintGaps();
            break;
        case WM_KEYDOWN:
        case WM_KEYUP:
        case WM_SYSKEYDOWN:
        case WM_SYSKEYUP:
        case WM_MOUSEWHEEL:
        case WM_ACTIVATE:
        case WM_ACTIVATEAPP:
            //case WM_MOUSEACTIVATE:
        case WM_KILLFOCUS:
            //case WM_SETFOCUS:
        case WM_MOUSEMOVE:
        case WM_RBUTTONDOWN:
        case WM_RBUTTONUP:
        case WM_MBUTTONDOWN:
        case WM_MBUTTONUP:
        case WM_LBUTTONDOWN:
        case WM_LBUTTONUP:
        case WM_LBUTTONDBLCLK:
        case WM_MBUTTONDBLCLK:
        case WM_RBUTTONDBLCLK:
        case WM_XBUTTONDOWN:
        case WM_XBUTTONUP:
        case WM_XBUTTONDBLCLK:
        case WM_VSCROLL:
            // Вся обработка в родителе
            {
                switch (messg)
                {
                    case WM_VSCROLL:
                        switch (LOWORD(wParam))
                        {
                        case SB_THUMBTRACK:
//.........这里部分代码省略.........
开发者ID:havocbane,项目名称:ConEmu,代码行数:101,代码来源:VConChild.cpp


注:本文中的CVirtualConsole::GetView方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。