|
Available in LEADTOOLS Medical Imaging toolkits. |
ShowWindowLevelDlg Example for C++ 5.0 and later
void CDialogs::OnShowWindowLevelDlg()
{
HRESULT hr;
int nRet;
ILEADRasterDlgKrn_U *m_pRasterDlgKrn = NULL;
hr = CoCreateInstance(CLSID_LEADRasterDlgKrn_U,
NULL,
CLSCTX_ALL,
IID_ILEADRasterDlgKrn_U,
(LPVOID*)&m_pRasterDlgKrn);
ILEADRasterDlgClr_U *m_pRasterDlgClr = NULL;
hr = CoCreateInstance(CLSID_LEADRasterDlgClr_U,
NULL,
CLSCTX_ALL,
IID_ILEADRasterDlgClr_U,
(LPVOID*)&m_pRasterDlgClr);
nRet = m_pRasterDlgKrn->InitDlg(INIT_WITH_COLOR);
m_pRasterDlgClr->WindowLevelLow = m_pLead1.GetMinVal();
m_pRasterDlgClr->WindowLevelHigh = m_pLead1.GetMaxVal();
m_pRasterDlgClr->WindowLevelFactor = 0;
switch (m_pLead1.GetIsGrayscale())
{
case GRAY_ORDEREDNORMAL:
m_pRasterDlgClr->StartColor = RGB(0, 0, 0);
m_pRasterDlgClr->EndColor = RGB(255, 255, 255);
break;
case GRAY_ORDEREDREVERSE:
m_pRasterDlgClr->StartColor = RGB(255, 255, 255);
m_pRasterDlgClr->EndColor = RGB(0, 0, 0);
break;
case GRAY_NOTORDERED:
m_pRasterDlgClr->StartColor = RGB(0, 0, 0);
m_pRasterDlgClr->EndColor = RGB(255, 255, 255);
break;
default: AfxMessageBox(TEXT("Not Supported")); exit(0);
}
m_pRasterDlgClr->WindowLevelFlags = FILL_LUT_OUTSIDE | FILL_LUT_LINEAR;
m_pRasterDlgClr->UIFlags = WINDOWLEVEL_SHOW_PREVIEW |
WINDOWLEVEL_SHOW_TOOL_ZOOMLEVEL |
WINDOWLEVEL_SHOW_RANGE |
WINDOWLEVEL_AUTOPROCESS;
m_pRasterDlgClr->Bitmap = m_pLead1.GetBitmap();
nRet = m_pRasterDlgClr->ShowWindowLevelDlg((long)m_hWnd);
if (nRet == 0 && m_pRasterDlgClr->DialogStatus == DLG_OK)
{
m_pLead1.WindowLevelFillLUT(m_pRasterDlgClr->StartColor,
m_pRasterDlgClr->EndColor,
m_pRasterDlgClr->Low,
m_pRasterDlgClr->High,
m_pRasterDlgClr->LowBit,
m_pRasterDlgClr->HighBit,
m_pRasterDlgClr->WindowLevelLow,
m_pRasterDlgClr->WindowLevelHigh,
m_pRasterDlgClr->WindowLevelFactor,
m_pRasterDlgClr->WindowLevelFlags);
}
}