只创建一个对话框的程序,诱发了我很大的兴趣。
#include <windows.h>
#include <commdlg.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
static CHOOSECOLOR cc;
static COLORREF crCustColors[16];
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = NULL;
cc.hInstance = NULL;
cc.rgbResult = RGB(0x80,0x80,0x80);
cc.lpCustColors = crCustColors;
cc.Flags = CC_RGBINIT|CC_FULLOPEN;
cc.lCustData = 0;
cc.lpTemplateName = NULL;
cc.lpfnHook = NULL;
return ::ChooseColor(&cc);
}
关于CHOOSECOLOR结构的说明:
typedef struct { DWORD lStructSize;//大小
HWND hwndOwner;//主窗口(父窗口)
HWND hInstance;//实例句柄
COLORREF rgbResult;//如果被设置,那么创建时就是那个颜色
COLORREF *lpCustColors;//Pointer to an array of 16 values that contain red, green, blue (RGB) values //for the custom color boxes in the dialog box.照搬madn
DWORD Flags;//参见msdn吧
LPARAM lCustData;//还没用到
LPCCHOOKPROC lpfnHook;//还没学到hook
LPCTSTR lpTemplateName;//还没有用到 }
CHOOSECOLOR, *LPCHOOSECOLOR;