2017年11月26日 星期日

[ Windows | MFC ] show select Color dialog ( use CColorDialog )

void ClassName::showSelectColorDlgAndGetColor(COLORREF * color, BYTE *value_r, BYTE *value_g, BYTE *value_b)
{
     TRACE(_T("%s:%d\n"), __FUNCTIONW__, __LINE__);

     CColorDialog dlg(RGB(255, 0, 0), CC_FULLOPEN);
     if (dlg.DoModal() == IDOK)
     {
         *color = dlg.GetColor();
         TRACE(_T("%s:%d, 0x%06X\n"), __FUNCTIONW__, __LINE__, *color);

         if (value_r && value_g && value_b)
         {
              *value_r = GetRValue(*color);
              *value_g = GetGValue(*color);
              *value_b = GetBValue(*color);
              TRACE(_T("%s:%d, R:%d, G:%d, B:%d\n"), __FUNCTIONW__, __LINE__, *value_r, *value_g, *value_b);
         }
     }
}


沒有留言: