// // mxToolKit (c) 1999 by Mete Ciragan // // file: mxChooseColor.cpp // implementation: Win32 API // last modified: Mar 14 1999, Mete Ciragan // copyright: The programs and associated files contained in this // distribution were developed by Mete Ciragan. The programs // are not in the public domain, but they are freely // distributable without licensing fees. These programs are // provided without guarantee or warrantee expressed or // implied. // #include "mxtk/mxChooseColor.h" #include "mxtk/mxWindow.h" #include #include bool mxChooseColor (mxWindow *parent, int *r, int *g, int *b) { CHOOSECOLOR cc; static COLORREF custColors[16]; BYTE rr = *r; BYTE gg = *g; BYTE bb = *b; memset (&cc, 0, sizeof (CHOOSECOLOR)); cc.lStructSize = sizeof (CHOOSECOLOR); cc.hwndOwner = parent ? (HWND) parent->getHandle ():NULL; cc.rgbResult = RGB (rr, gg, bb); cc.lpCustColors = custColors; cc.Flags = CC_ANYCOLOR | CC_FULLOPEN | CC_RGBINIT; if (ChooseColor (&cc)) { *r = (int) GetRValue (cc.rgbResult); *g = (int) GetGValue (cc.rgbResult); *b = (int) GetBValue (cc.rgbResult); return true; } return false; }