我想这必须要用回调函数来实现,如下:UINT_PTR CALLBACK CCHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
//在为里如何实现我的要求
return 0;
}CHOOSECOLOR cc;
memset(&cc, 0, sizeof(CHOOSECOLOR));
...
cc.lpfnHook = CCHookProc;
ChooseColor(&cc);

解决方案 »

  1.   

    没用过,帮助也没有看清楚,似乎需要处理所有消息
    LZ还是自己定义对话框吧,可以设计一个PS的颜色选择器,多好啊
      

  2.   

    首先应该用SPY++查看颜色对话框的所有子窗口的顺序或者类名(方便定位控件),在cchook里面处理WM_INITDIALOG消息记录所有控件窗口句柄(根据顺序能对应是哪个控件),然后在cchook里面处理WM_NOTIFY消息,控件的这些操作都能通过WM_NOTIFY收到,但有些值需要你自己来计算,因为除了WM_INITDIALOG消息是对话框先处理外,其他所有消息都是cchook先处理,然后才轮到对话框来处理,所以颜色变化还没有反映出来。