只创建一个对话框的程序,诱发了我很大的兴趣。
#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;