找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7153|回复: 0
打印 上一主题 下一主题
收起左侧

WINDOWS SDK 自定义窗口图标以及加载资源

[复制链接]
跳转到指定楼层
楼主
ID:72008 发表于 2015-1-11 19:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、创建RC文件和resource.h头文件

1、编写定义资源文件 (RC文件)
2、编写定义resource.h头文件
3、添加资源文件(RC文件)到工程中,以及添加声明resource.h头文件

二、添加资源使用资源

1、准备好图标资源放在工程目录里(ICO图标文件或其他资源文件)
2、添加实体文件与资源ID的对应关系(在程序中使用的ID可以是字符)
3、添加resource.h头文件中 资源ID对应的数值ID()
4、使用资源


三、重点

1、EXE图标
2、重点小结


四、效果 和部分代码图片



一、创建RC文件和resource.h头文件

1、编写RC文件
  1) : 在工程目录下建立一个TXT文件
  2) : 改名为Script1.rc(这里可以改其他的)
  3) : 把下面的代码写入创建的TXT文件里
下面是代码:

//Microsoft Developer Studio generated resource script.
//
#include "resrc1.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "resource.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Chinese (中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
//LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.

//在这里添加资源对应的ID和实体文件的路径


#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE
BEGIN
    "resrc1.h\0"
END

2 TEXTINCLUDE DISCARDABLE
BEGIN
    "#include ""resource.h""\r\n"
    "\0"
END

3 TEXTINCLUDE DISCARDABLE
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // Chinese (中国) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED


2、编写resource.h 头文件

  1) : 在工程目录下建立一个TXT文件
  2) : 改名为Script1.rc(这里可以改其他的)
  3) : 把下面的代码写入创建的TXT文件里
下面是代码:
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Script1.rc
//
//这里添加资源ID对应的数值

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        103
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

3、添加资源文件(RC文件)到工程中,以及添加声明resource.h头文件

    1)工程->增加到工程->文件
    2)选择刚刚建立的RC文件

    3)在cpp文件头中添加 #include "resource.h"


二、添加资源

1、准备好图标资源放在工程目录里,(我这里有两Ico文件 入下图:)
         




2、添加资源文件(RC文件)
    打开RC文件在里面添加下面两条代码(就是上面两的ico文件的)

    IDI_ICON1           ICON    DISCARDABLE     "icon2.ico"
    IDI_ICON2                ICON        DISCARDABLE        "222.ico"

    注:IDI_ICON1  就是资源ID ,"icon2.ico"就是实体文件(也是图标的全名
   注:资源对应的ID和实体文件的路径


3、添加resource.h头文件
    打开resource.h头文件 添加这两条代码

   #define IDI_ICON1                    101
   #define IDI_ICON2                    102

   注:资源ID对应的数值

4、使用资源

           a1.hIcon =LoadIcon(shu,MAKEINTRESOURCE(IDI_ICON2));
        MAKEINTRESOURCE(IDI_ICON2)  使用我们自己的图标
        上面的是重点         

        WNDCLASS a1;
        a1.style =        CS_HREDRAW | CS_VREDRAW;        //窗口的样式
        a1.lpfnWndProc = huang;        //名回调函数的名字
        a1.cbClsExtra =NULL;        //窗口类无扩展
        a1.cbWndExtra =NULL;        //窗口实例无扩展
        a1.hInstance =        shu;//当前实例句柄
        a1.hIcon =LoadIcon(shu,MAKEINTRESOURCE(IDI_ICON2));         //窗口的图标   
        a1.hCursor =LoadCursor(NULL,IDC_APPSTARTING);        //光标的形状与类型
        a1.hbrBackground =        (HBRUSH)(COLOR_WINDOW+1);//窗口的背景
        a1.lpszMenuName =NULL;        //设定菜单
        a1.lpszClassName =        "HUANG";//设定窗口名字(类名)


三、重点
1、EXE图标一般是resource.h 中定义的  如下:
   
  #define IDI_ICON1                    101
      #define IDI_ICON2                 102
     注: 谁的数值小谁就是EXE的图标
   
2、小结
      1)RC文件(RC文件最重要的就是下面的代码)
   
     IDI_ICON1           ICON    DISCARDABLE     "icon2.ico"        IDI_ICON2                ICON        DISCARDABLE        "222.ico"

     2)resource.h头文件 (同上下面的代码很最重要)

       #define IDI_ICON1                    101
      #define IDI_ICON2                    102

    3)
LoadIcon(shu,MAKEINTRESOURCE(IDI_ICON2));         //窗口的图标


    注:其实 resource.h 头文件可以不要的。但是还是加上好。。。


4、效果和部分代码图片

1、窗口效果


2、EXE文件图标



3、RC代码图片



4、CPP文件代码(主代码)


5、
resource.h 头文件





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表