Win32程式的Hot key與拖曳(Drag and Drop) @ 資訊技術與心情 :: 隨意窩 Xuite日誌
  • 即時碎碎唸
    1. 沒有新回應!
  • 累積 | 今日
    loading......
  • 搜尋本Blog文章

  • 關鍵字
  • 200603262349Win32程式的Hot key與拖曳(Drag and Drop)
    最近因為在玩MAC OS X
    幾乎都是Hot Key+拖曳來使用電腦
    耳濡目染下
    覺認為自己寫的程式如果沒有Hot Key或拖曳的話就很遜

    Hot Key倒是還好
    以我現在用的VC架構來講
    只要在Resource Editer上的Caption裡在字母前加&符號
    就勉強可以完成類似的效果

    至於拖曳.....
    預設的AppWizard會幫你加上一行m_pMainWnd->DragAcceptFiles();
    但那只是預設當檔案拖到CFrameWnd上時的處理

    如果是自己寫的View或Dialog甚至Button上要能接受檔案拖進去作事情
    就必須自己呼叫DragAcceptFiles()
    同時處理OnDropFiles()訊息

    通常處理方式都必須先取出檔案路徑
    然後再作一些判斷,例如副檔名或檔頭等等
    接下來再作一些該做的事,例如讀檔或者修改畫面等等
    由於應用很多種,在此僅整理出共通的操作
    那就是讀取檔案路徑
    同時必須考慮萬一使用者一次拖好幾個檔案進來該怎麼辦

    int nFiles = DragQueryFile(hDropInfo, 0xFFFFFFFF, 0, 0);
    int i=0;
    CStringArray strAllPath;
    strAllPath.RemoveAll();
    for (i=0; i
    {
    CString strFilePath;
    DragQueryFile(hDropInfo, i,
    strFilePath.GetBuffer(MAX_PATH), MAX_PATH);
    strFilePath.ReleaseBuffer();
    strAllPath.Add(strFilePath);
    }

    for(i=0;i
    {
    //Check

    //Do Something

    }

    即使這樣做
    跟MAC還是差很遠啦
    但能力與時間都有限
    暫時先這樣了

    srm與安全清空垃圾桶|日誌首頁|Apple Darwin的吉祥物上一篇srm與安全清空垃圾桶下一篇Apple Darwin的吉祥物
    回應