[英]How to combine flags in C++?
例如,我想像這樣為OPENFILENAMEW
編寫一個包裝器 function:
void BrowseForFile(bool bAllowMultiSelect, bool bDontAddToRecent...)
{
OPENFILENAMEW ofn;
if((bAllowMultiSelect == true) and (bDontAddToRecent == false))
{
ofn.Flags = OFN_ALLOWMULTISELECT;
}
else if((bAllowMultiSelect == false) and (bDontAddToRecent == true))
{
ofn.Flags = OFN_DONTADDTORECENT;
}
else if((bAllowMultiSelect == true) and (bDontAddToRecent == true))
{
ofn.Flags = OFN_ALLOWMULTISELECT | OFN_DONTADDTORECENT;
}
// and so on...
}
我是否必須像這樣編寫每個組合,或者有什么簡單的方法可以實現嗎?
這是@IgorTandetnik 和@AviBerger 建議的解決方案:
void BrowseForFile(bool bAllowMultiSelect, bool bDontAddToRecent...)
{
OPENFILENAMEW ofn;
if(bAllowMultiSelect == true)
{
ofn.Flags |= OFN_ALLOWMULTISELECT;
}
if(bDontAddToRecent == true)
{
ofn.Flags |= OFN_DONTADDTORECENT;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.