贵阳到兴仁汽车时刻表:MAKEINTRESOURCE 的作用 - 提问与辅导 - C语言也能干大事 - 如鹏网 ...

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 01:50:05

MAKEINTRESOURCE 的作用

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
    // Set app icons
    HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
    SendMessage(hwnd, WM_SETICON, TRUE,  (LPARAM)hIcon);
    SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
   
    //
    // Add initializing code here
    //
   
    return TRUE;
}
上面的想必很熟悉吧   ,呵呵  那这里分享下这里  MAKEINTRESOURCE   的作用: (什么时候该用什么时候可以不用)






  
  是把一个"数字形ID",转化为"字符串".但是执行前后,输入的数据的内容和长度是不变的!它只不过就是C语言里面"强制类型转换"而已.   
   
  请看   Winuser.h   代码:   
  #define   MAKEINTRESOURCEA(i)   (LPSTR)((DWORD)((WORD)(i)))   
  #define   MAKEINTRESOURCEW(i)   (LPWSTR)((DWORD)((WORD)(i)))   
  #ifdef   UNICODE   
  #define   MAKEINTRESOURCE     MAKEINTRESOURCEW   
  #else   
  #define   MAKEINTRESOURCE     MAKEINTRESOURCEA   
  #endif   //   !UNICODE   
   
  现在,再来归纳它的用法.就用FindResource来说明.(这个函数与MFC的AfxFindResourceHandle)   
   
  HRSRC   FindResource(   
      HMODULE   hModule,   //   module   handle   
      LPCTSTR   lpName,     //   resource   name   
      LPCTSTR   lpType       //   resource   type   
  );   
   
  就是lpName参数需要使用MAKEINTRESOURCE   ,因为它需要LPCTSTR类型的参数输入.那么,情况就很清楚了.凡设计"资源"的API或者MFC类,在参数类型为LPCTSTR时,就应该使用MAKEINTRESOURCE   .这是针对"资源名字"为"数字类型"时的情况.   
   
  但是,当你使用的资源没有数字ID,而仅仅是用"字符串"来识别的话,就直接把这个标识资源名字的"字符串"当做参数传入,而不必使用MAKEINTRESOURCE   了。


大家应该知道了吧。
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
    //// Set app icons
    HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
    SendMessage(hwnd, WM_SETICON, TRUE,  (LPARAM)hIcon);
    SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
//   
//    //
//    // Add initializing code here
//    //
//   
    return TRUE;
}
我来说说这个初始化时候的默认给的代码完成了什么。其实就是加载了 图标
下载 (2.77 KB)
2009-7-24 20:54
右上角有图标。   怎么回事 我没加载他啊。 嘿嘿 看上面就知道了
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
IDI_ICONAPP  这个像什么  是不是上面那个图标的名字呢 验证下看看。想想 这个图标是资源吧  那我们定位到工程文件夹  看
resources.h  里看看
下载 (9.46 KB)
2009-7-24 20:54
呀 果然 是 那么 你们知道 如何解决左上角图标一直是默认给的问题了吧