Windows编程(3)|SDK自定义图标

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bizhu12/article/details/6667580

       在资源那右键选择添加资源,选择图标,然后自己绘制图标,这时图标会有个ID号,在设计窗口类时MAKEINTRESOURCE()对ID号转换为资源后

使用LoadIcon()加载资源,

我绘制的图标

 

设计窗口类的代码:

//设计窗口类,该窗口类并不是C++中的类,只是表示窗口特征的结构体

	WNDCLASS MyWndClass; //WNDCLASS是个结构体,该结构体中的成员是指定窗口特征的数据
   
	//WNDCLASS结构体
	/*

	typedef struct _WNDCLASS { 
	UINT       style; 
	WNDPROC    lpfnWndProc; 
	int        cbClsExtra; 
	int        cbWndExtra; 
	HINSTANCE  hInstance; 
	HICON      hIcon; 
	HCURSOR    hCursor; 
	HBRUSH     hbrBackground; 
	LPCTSTR    lpszMenuName; 
	LPCTSTR    lpszClassName; 
	} WNDCLASS, *PWNDCLASS; 
	Members

	*/

	//这两个变量允许用户请求Windows内部提供额外的空间以便额外数据与窗口
	//实例发生联系,通常不分配空间
	MyWndClass.cbClsExtra = NULL;
	MyWndClass.cbWndExtra = NULL;
    
	//背景颜色,这里有两种方法
	//GetStockObject()返回的句柄是HGDIOBJ类型,需要转换,
	//可以加载画刷,也可以加载画笔,
	//GetStockObject()参数的值有(看MSDN)
	//BLACK_BRUSH     黑色画刷
	//DKGRAY_BRUSH    深灰色画刷
	//GRAY_BRUSH      灰色画刷
	//WHITE_BRUSH     白色画刷
	//MyWndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	MyWndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	
	//窗口的图标,如果为NULL,系统将提供一个默认的图标
	//LoadIcon()加载图标资源,返回图标句柄,
	//如果加载系统标准的图标第一个参数必须为NULL,第二个参数值为
	//IDI_ERROR        错误图标
	//IDI_APPLICATION  默认应用程序图标
	//IDI_QUESTION     问号图标 
	//IDI_EXCLAMATION  感叹号图标 
	//IDI_ASTERISK     星号图标
	//IDI_WARNING      警告图标
	//IDI_WINLOGO      Windows图标
	//IDI_HAND         与IDI_ERROR相同
	//IDI_INFORMATION  消息图标
	//还有很多.....
	//MyWndClass.hIcon  = LoadIcon(NULL,IDI_WINLOGO); //使用系统图标
        MyWndClass.hIcon   = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));//使用自定义图标
        //光标,LoadCursor()的使用与LoadIcon()相同
        MyWndClass.hCursor = LoadCursor(NULL,IDC_APPSTARTING);
	
	MyWndClass.hInstance = hInstance; //当前实例的句柄
        MyWndClass.lpfnWndProc = MyWindowProc; //窗口函数(消息处理函数),lpfnWndProc是个函数指针
	MyWndClass.lpszClassName = szWindowClass; //窗口类名
        MyWndClass.lpszMenuName  = NULL ;// 菜单,指定菜单资源的名字,NULL是表示没有菜单,
	//MyWndClass.lpszMenuName  = MAKEINTRESOURCE(IDR_MENU1);//一种,MAKEINTRESOURCE()加载菜单
        MyWndClass.style = CS_HREDRAW|CS_VREDRAW; //使用|把多种窗口样式连接在一起
	//窗口的样式
        //CS_HREDRAW  表示当水平方向宽度发生变化时重绘整个窗口
        //CS_VREDRAW  表示当垂直方向高度发生变化时重绘整个窗口
	//CS_NOCLOSE  禁用系统菜单中的Close命令,既是没有关闭按钮
	//CS_DBLCLKS  当用户双击鼠标时向窗口过程函数发送鼠标双击消息
    


效果:

 

展开阅读全文

没有更多推荐了,返回首页