本文所用soui版本為1.0版本,在拖檔案上與一般的訊息略有不同。
先與常規新增訊息相同。
class cmainfrm : publicshostwnd
else
}::dragfinish(hdropinfo);
}void
onclose() ;
protected
:
//soui訊息
event_map_begin()
event_name_command(l
"btn_close
", onclose)
event_map_end()
//hostwnd真實視窗訊息處理
begin_msg_map_ex(cmainfrm)
msg_wm_dropfiles(ondropfile)
chain_msg_map(shostwnd)
reflect_notifications_ex()
end_msg_map()
}
到這裡完成了soui新增訊息的比較完整的過程。但是發現視窗並不響應拖檔案。
參考簡單方法解決vista/win7 無法接收wm_dropfiles問題 ,新增如下函式
bool changewndmessagefilter(uint umessage, bool ballow)//獲取changewindowmessagefilter函式介面指標
changewindowmessagefilterfn pfnchangewindowmessagefilter = (changewindowmessagefilterfn)getprocaddress( husermod, "
changewindowmessagefilter
");
if ( pfnchangewindowmessagefilter ==null )
bresult = pfnchangewindowmessagefilter( umessage, ballow?1:2 ); //
1-msgflt_add, 2-msgflt_remove
freelibrary( husermod );
return
bresult;
}
然後在初始化函式中新增如下:
bool oninitdialog(hwnd wndfocus, lparam linitparam)
這樣就實現了檔案拖曳。
完整**如下:
class cmainfrm : publicshostwnd
//獲取changewindowmessagefilter函式介面指標
changewindowmessagefilterfn pfnchangewindowmessagefilter = (changewindowmessagefilterfn)getprocaddress( husermod, "
changewindowmessagefilter
");
if ( pfnchangewindowmessagefilter ==null )
bresult = pfnchangewindowmessagefilter( umessage, ballow?1:2 ); //
1-msgflt_add, 2-msgflt_remove
freelibrary( husermod );
return
bresult;
}bool oninitdialog(hwnd wndfocus, lparam linitparam)
void
ondropfile(hdrop hdropinfo)
else
}::dragfinish(hdropinfo);
}void
onclose() ;
protected
:
//soui訊息
event_map_begin()
event_name_command(l
"btn_close
", onclose)
event_map_end()
//hostwnd真實視窗訊息處理
begin_msg_map_ex(cmainfrm)
msg_wm_initdialog(oninitdialog)
msg_wm_dropfiles(ondropfile)
chain_msg_map(shostwnd)
reflect_notifications_ex()
end_msg_map()
private
: bool m_blayoutinited;
/***/
}
SOUI中事件中心的使用
在soui中為了方便將工作者執行緒中的處理結果及時反饋到ui執行緒設計了事件中心來解決此類問題。在使用事件中心需要注意的事項如下 snotifycenter pnotifycenter new snotifycenter delete pnotifycenter 向事件中心新增事件 snotifyc...
SOUI中快樂的使用32 64位程式設計
目前64系統已經普及,但是市面上仍不少軟體跑在32上。順應時代。soui一直都可以32,64使用,不過實際使用過程中,可能仍有實際情況不得不保留32位的軟體系統。以前的soui只能單獨使用32或64位,無法同時使用 當然有經驗的同學肯定自己已經配置好了 為方便大家,soui開始支援同時編譯32 64...
vue element中的table實現拖曳效果
用到的外掛程式是 sortablejs sortablejs github位址 sortablejs 中文配置 element中table的row key等屬性的說明 正確的效果圖 注意 這裡是給element中的table繫結了識別符號row key id 錯誤的效果圖 沒有繫結識別符號row k...