找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7719|回復: 0
打印 上一主題 下一主題
收起左側

WINDOWS SDK 自定義窗口圖標以及加載資源

[復制鏈接]
跳轉到指定樓層
樓主
ID:72008 發(fā)表于 2015-1-11 19:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、創(chuàng)建RC文件和resource.h頭文件

1、編寫定義資源文件 (RC文件)
2、編寫定義resource.h頭文件
3、添加資源文件(RC文件)到工程中,以及添加聲明resource.h頭文件

二、添加資源使用資源

1、準備好圖標資源放在工程目錄里(ICO圖標文件或其他資源文件)
2、添加實體文件與資源ID的對應關系(在程序中使用的ID可以是字符)
3、添加resource.h頭文件中 資源ID對應的數(shù)值ID()
4、使用資源


三、重點

1、EXE圖標
2、重點小結


四、效果 和部分代碼圖片



一、創(chuàng)建RC文件和resource.h頭文件

1、編寫RC文件
  1) : 在工程目錄下建立一個TXT文件
  2) : 改名為Script1.rc(這里可以改其他的)
  3) : 把下面的代碼寫入創(chuàng)建的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) : 把下面的代碼寫入創(chuàng)建的TXT文件里
下面是代碼:
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Script1.rc
//
//這里添加資源ID對應的數(shù)值

// 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對應的數(shù)值

4、使用資源

           a1.hIcon =LoadIcon(shu,MAKEINTRESOURCE(IDI_ICON2));
        MAKEINTRESOURCE(IDI_ICON2)  使用我們自己的圖標
        上面的是重點         

        WNDCLASS a1;
        a1.style =        CS_HREDRAW | CS_VREDRAW;        //窗口的樣式
        a1.lpfnWndProc = huang;        //名回調函數(shù)的名字
        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
     注: 誰的數(shù)值小誰就是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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表