zoukankan      html  css  js  c++  java
  • MFC中小笔记

    主要记录下一些有啊没啊的MFC东西。

    1、单文档 去掉 无标题:在玩的时候用于FindWindow(class,title)

     

         
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    
    cs.style &= ~FWS_ADDTOTITLE  ;//////////////////加上这一句.
    
    return TRUE;
    }
    单文档 去掉 打开文档名(无标题)

        

    2、鼠标右键操作 ,二级菜单

      POINT t;
     GetCursorPos(&t);
     HMENU hMenu,hPopupMenu;
     hMenu=CreatePopupMenu();
     hPopupMenu=CreatePopupMenu();
     AppendMenu(hMenu,MF_STRING,CW_ABOUT,"11111111");
            AppendMenu(hPopupMenu,MF_STRING,CW_DOCUMENT,"22222222(&D)");
             InsertMenu(hMenu,1,MF_BYPOSITION|MF_STRING|MF_POPUP,(unsigned short)hPopupMenu,"3333333");
            TrackPopupMenu(hMenu,TPM_TOPALIGN,t.x,t.y,0,::GetFocus(),0); 
    右键弹出

    3、文件文件夹右击菜单 注册表中位置 HKCR_AllFilesystemObjects_ShellEx_ContextMenuHandlers

      在ATL工程中编辑的位置为FileView 选项卡- SimATL.rgs(*.rgs)

        NoRemove AllFilesystemObjects
        {
            NoRemove ShellEx
            {
                NoRemove ContextMenuHandlers
                {
                    ForceRemove SimpleShlExt = s '{×××××××××××××××(ATL-uid)}'
                }
            }
        }
    }
    注册表-全部文件和文件夹

    4、对多个文件的右击操作()

    HRESULT CSimAti::Initialize(LPCITEMIDLIST pidlFolder,  LPDATAOBJECT lpdobj,   HKEY hkeyProgID)
    {        
        //----------省略
            。。。。。。
    
        //拖拽操作,右击操作 
        //----------------------------------------------
        //extern TCHAR m_files[MAX],m_pzDropFile[20]
        //extern int length;
    
        int count = ::DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0);
       
        if (count){
            for (int i=0;i<count;i++){
                DragQueryFile(hDrop,i,m_pzDropFile,MAX_PATH);    
                for (int j=0;j<strlen(m_pzDropFile);j++)
                {
                    m_files[length+j]=m_pzDropFile[j];
                
                }
                
               length+=strlen(m_pzDropFile);
               m_files[length++]=0x20;//0x20 ASCII为空格,以空格来间隔各个文件
            }
            m_files[length]=NULL;
            
        }
        //----------------------------------------------
    
            
        
        GlobalUnlock(hDrop);
        //Release the medium storage
        ::ReleaseStgMedium(&mdmSTG);
        //return SUCCEED flag
        return S_OK;
    }
    多文件右键操作

    5、对文件-右键菜单的点击行为

    HRESULT CSimAti::InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
    {
        USES_CONVERSION;
    
        int nFlag = HIWORD(lpici->lpVerb);//如果 nFlag 不为0则说明 pici->lpVerb 指向一个以''''结尾的字符串
        int nMnuId = LOWORD(lpici->lpVerb);//user clicked menu's id  //用户当前点击的菜单项ID 
        if(0 != nFlag){
            return E_INVALIDARG;
        }
        //response the menu item command 
        switch(nMnuId){    
        case 0:
            {
            ///*形成后的命令行格式为  *.exe E/D file1name空格 filename2空格 filename3...*/
            m_files[0]='E';//
            m_files[1]=0x20;//空格
            ShellExecute(NULL,"open","temp.exe",m_files,NULL, SW_SHOW );
                return S_OK;
            }        
            break;
            
        case 1:
            {
                m_files[0]='D';//标识符 E 
              m_files[1]=0x20;
        ShellExecute(NULL,"open","temp.exe",m_files,NULL, SW_SHOW );
            return S_OK;
            }
            break;
        }
        return E_INVALIDARG;
    }            
    右键点击
  • 相关阅读:
    hdu 5366 简单递推
    hdu 5365 判断正方形
    hdu 3635 并查集
    hdu 4497 数论
    hdu5419 Victor and Toys
    hdu5426 Rikka with Game
    poj2074 Line of Sight
    hdu5425 Rikka with Tree II
    hdu5424 Rikka with Graph II
    poj1009 Edge Detection
  • 原文地址:https://www.cnblogs.com/Bachelor/p/3534594.html
Copyright © 2011-2022 走看看