• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-1  評論-9  文章-16  trackbacks-0
            這些技巧主要是在我的項目中用到的,為了達到記憶的目的:
            1.實現目錄選擇
               使用API SHBrowseForFolder實現,實例代碼如下:
             1UpdateData();
             2    char Buf[MAX_PATH];
             3    LPITEMIDLIST lp;
             4    BROWSEINFO bs;
             5    bs.hwndOwner=NULL;
             6    bs.pidlRoot=NULL;
             7    bs.pszDisplayName=Buf;
             8    bs.lpszTitle=_T("請選擇存放目錄");
             9    bs.ulFlags=BIF_RETURNONLYFSDIRS;//只選擇文件系統目錄
            10    bs.lpfn=NULL;
            11    bs.iImage=0;
            12    lp=SHBrowseForFolder(&bs);
            13    if(lp){
            15        SHGetPathFromIDList(lp,Buf);
            16        m_Path=Buf;//所需的目錄名
            17        }

            18    UpdateData(FALSE);
            19
            2.一個好用的CPiture類
            /Files/fenglinuestc/picture.rar
            示例代碼:
             1UpdateData();//取得圖片路徑,m_Picture 為CPicture對像
             2    CFileDialog cfd(TRUE,NULL,NULL,0,"All Image File(*.jpg,*.jpeg,*Gif,*BMP)|*.jpg;*.jpeg;*.gif;*.bmp;||");
             3    if(cfd.DoModal()==IDOK)
             4    {
             5      m_bkPath=cfd.GetPathName();
             6      UpdateData(FALSE);
             7      m_Picture.Load(m_bkPath);
             8      if(m_Picture)//如果可用
             9      {
            10        GetDlgItem(IDC_FRMAE)->EnableWindow(TRUE);
            11        UpdateData(TRUE);
            12        BeginWaitCursor();
            13        Invalidate();//重畫
            14        EndWaitCursor();
            15      }

            16    }
            重畫的時候只要使用.Render(CDC * dc,Crect rect)定位到一個rect就可以顯示圖片,接著上邊的重畫消息的示例代碼如下:
             1//WM_PAINT
             2CPaintDC dc(this); // device context for painting
             3    if(m_Picture)
             4    {
             5        CRect rect;
             6        CWnd *previewwnd=GetDlgItem(IDC_FRMAE);//IDC_FRAME,通常為一個Groupbox
             7        previewwnd->GetWindowRect(rect);
             8        ScreenToClient(rect);
             9               //顯示到rect中
            10        m_Picture.Render(&dc,rect);
            11    }
            3.窗口添加ContextMenu的方法
            //ON_WM_CONTEXTMENU..
            ::OnContextMenu(CWnd* pWnd, CPoint point) 
            {
                     CMenu menu;
                   
            //IDM_CHILDMENU為一ContextMenu
                    VERIFY(menu.LoadMenu(MAKEINTRESOURCE(IDM_CHILDMENU)));
                   
            //Pull out the first popup menu from it
                    CMenu* pPopup=menu.GetSubMenu(0);
                   ASSERT(pPopup
            !=NULL);
                
                    CWnd 
            * pWndPopupOwner=this;
                  
            while(pWndPopupOwner->GetStyle()&WS_CHILD)
                     pWndPopupOwner
            =pWndPopupOwner->GetParent();
                    pPopup
            ->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner);
            }
            Continue..
            posted on 2007-09-13 12:26 Lexili 閱讀(447) 評論(0)  編輯 收藏 引用 所屬分類: Win32
            久久精品国产亚洲精品2020| 久久综合视频网站| 久久综合国产乱子伦精品免费| 综合人妻久久一区二区精品| 久久久老熟女一区二区三区| 国产精自产拍久久久久久蜜| 亚洲欧美精品一区久久中文字幕 | 99久久精品午夜一区二区| 嫩草影院久久99| 久久香综合精品久久伊人| 久久99精品综合国产首页| 亚洲精品久久久www| 久久精品国产精品国产精品污| 一本久久精品一区二区| 久久综合久久综合九色| 人妻精品久久无码专区精东影业| 久久最新精品国产| 久久久国产乱子伦精品作者| 久久久久久亚洲精品不卡 | 国产成人久久激情91| 思思久久精品在热线热| 99久久精品无码一区二区毛片 | 久久午夜夜伦鲁鲁片免费无码影视| 国产精品久久久久久久久免费 | 久久精品视频网| 亚洲αv久久久噜噜噜噜噜| 亚洲精品99久久久久中文字幕 | 亚洲av伊人久久综合密臀性色| 久久精品国产72国产精福利| 亚洲伊人久久大香线蕉苏妲己| 久久久久亚洲AV无码麻豆| 亚洲国产精品18久久久久久| 亚洲精品NV久久久久久久久久 | 国内精品伊人久久久久影院对白| 国产精品18久久久久久vr| 国产产无码乱码精品久久鸭| 国产成人精品免费久久久久| 久久九九亚洲精品| 国产日韩欧美久久| 午夜精品久久久久久| 模特私拍国产精品久久|