• <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 閱讀(453) 評論(0)  編輯 收藏 引用 所屬分類: Win32
            日本久久久久亚洲中字幕| 理论片午午伦夜理片久久 | 久久精品国产亚洲αv忘忧草| 午夜天堂av天堂久久久| 亚洲一本综合久久| 久久这里都是精品| 久久精品成人免费国产片小草| 久久综合精品国产一区二区三区 | 97久久精品国产精品青草| 天天影视色香欲综合久久| 精品国产乱码久久久久久1区2区| 国产91久久综合| 久久精品国产亚洲Aⅴ香蕉| 亚洲国产另类久久久精品黑人| 国产色综合久久无码有码| 精品久久久久成人码免费动漫| 久久久精品午夜免费不卡| 久久精品9988| 久久久久久国产精品免费免费| 国产精品99久久精品爆乳| 狠狠精品干练久久久无码中文字幕| 99久久国语露脸精品国产| 国产一区二区精品久久| 久久久免费观成人影院| 久久久精品国产免大香伊 | 99久久综合狠狠综合久久止| 日本免费久久久久久久网站| 欧美久久综合性欧美| 久久久久亚洲爆乳少妇无 | 亚洲国产成人久久精品99| 久久久久亚洲精品无码网址| 亚洲午夜久久久| 91精品国产91久久久久福利| 国产福利电影一区二区三区久久久久成人精品综合 | 国产L精品国产亚洲区久久| 精品久久久久中文字幕一区| 久久久国产精华液| 无码任你躁久久久久久老妇| 99久久精品这里只有精品| 久久久久综合网久久| 久久综合久久综合久久|