代码改变世界

win32只创建一个对话框的程序(很有趣)

2011-10-08 20:34  捣乱小子  阅读(571)  评论(0编辑  收藏  举报

只创建一个对话框的程序,诱发了我很大的兴趣。

#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;