vc6寫的乙個拖拽檔案得到路徑的**在win8上執行出錯,找到了這個例子。記錄備忘。
解決的辦法,使用changewindowmessagefilter註冊wm_dropfiles這個meessage。
changewindowmessagefilter是vista以後的乙個api,winxp下並沒有。
這個api在user32.dll中,使用時loadlibrary,getprocaddress得到函式位址就能使用。
1、在你的程式中新增以下函式:
[cpp]view plain
copy
//register global messages for vista win7 win8.1
typedef
bool
(winapi *_changewindowmessagefilter)(
uint
message,
dword
dwflag);.
bool
allowmeesageforvistaabove(
uint
umessageid,
bool
ballow)
_changewindowmessagefilter pchangewindowmessagefilter =
(_changewindowmessagefilter)getprocaddress( husermod, "changewindowmessagefilter"
);
if( null == pchangewindowmessagefilter )
bresult = pchangewindowmessagefilter( umessageid, ballow ? 1 : 2 );//msgflt_add: 1, msgflt_remove: 2
if( null != husermod )
return
bresult;
}
2、標頭檔案定義以下巨集 :
[cpp]view plain
copy
#define msgflt_add 1
#define msgflt_remove 2
3、在oninitdialog中新增函式呼叫:
[cpp]view plain
copy
allowmeesageforvistaabove(spi_setanimation, msgflt_add);
//allow drop files
allowmeesageforvistaabove(wm_dropfiles, msgflt_add);
Win8 1系統 雙系統
10月18日更新 win8.1正式發布,其安裝方法與此前win8 win8預覽版完全相同,本文面向win8.1依舊有效。以下為it之家早前撰寫的 win8 rp版安裝方法彙總大全 含雙系統教程等 說明,如果在文中碰到 win8消費者預覽版 的字眼直接將其等同視為 win8 rp版 或者 win8 即...
64位win8 1系統安裝intelhaxm
引用可能是win8安裝了hyper v 安裝了hyper v後其他程序就無法使用虛擬化技術了。解決辦法 管理員執行cmd,輸入如下命令 bcdedit copy d windows 8 no hypervisor bcdedit set hypervisorlaunchtype off 現在重啟機器...
Win8 1應用開發之檔案操作
而通過檔案選取器則能訪問到整個系統的檔案。一 應用功能宣告 musiclibrary 許可範圍可提供對使用者 的程式設計訪問能力,讓應用無需使用者互動就可以列舉和訪問庫中的全部檔案。此許可範圍通經常使用在須要訪問整個 庫的自己主動唱片點唱機應用中。file picker 提供了一種強大的 ui 機制...