zoukankan      html  css  js  c++  java
  • VC++中用API调用对话框资源

    关键技术:

        对于资源的载入须要几个API函数,以下分别介绍这几个API函数。

     a) FindResource 用来在一个指定的模块中定位所指的资源,语法例如以下:

         HRSRC FindResource(HMODULE hModule, LPCRSTR lpName, LPCTSTR lpType);

         參数说明:

        (1)hModule: 包括所须要的资料的模块句柄。假设是程序本身,则能够设置为NULL;

        (2)lpName: 能够使资源名称或者资源ID。

        (3)lpType:资源类型。在这里也就是自己指定的资源类型。

     b) LoadResource 用来将全部的资源载入到内存中。语法例如以下:

           HGLOBAL LoadResource(HMODULE hModule, HRSRC hResInfo);

         參数说明:

        (1)hModule: 包括所须要的资料的模块句柄。假设是程序本身。则能够设置为NULL;

        (2)hReInfo: 须要载入的资源句柄。这里也就是FindResource的返回值;

     c) LockResource 用来锁定内存中的资源数据块,返回值也就是要使用的直接指向资源数据的指针,语法例如以下:

           LPVOID LockResource(HGLOBAL hResData);

         參数说明:

         hResData: 指向内存中要锁定的资源数据块。这里也就是LoadResource的返回值。

    效果例如以下:

    设计过程:

    1)使用VC6.0创建基于对话框的应用程序。

    2)向窗口中加入一个静态文本控件。用鼠标右键点击对话框。在弹出的快捷键菜单中选择Properties命令,设置窗口的Caption属性为“API调用对话框资源”,如图(2)所看到的,

    图(2)import 资源

    3)在资源视图中,点击鼠标右键,在在弹出的快捷键菜单中选择Import命令。弹出“导入资源对话框”,选择一个txt文件,点击“Import”。

    4)在弹出的“自己定义资源类型”对话框中设置一个自己定义资源类型,这里输入“Text”。如图(3)所看到的,

    图(3) 新类向导

    5)按Ctrl+W 组合键进入 类向导,为文本控件加入变量,如图(4)所看到的,

      

        图(4)为控件关联变量

    6)设置文本框的属性,使其具有多行显示并能够显示滚动栏,如图(5)所看到的,

    图(5)设置多行显示,并显示水平垂直滚动栏

    7)加入“载入资源”button的点击事件,动态载入文本资源显示在文本框内,代码例如以下:

    void CAPIResourceDlg::OnLoadResource() 
    {	
    	HRSRC hRsrc = FindResource(NULL,MAKEINTRESOURCE(IDR_TEXT1),TEXT("Text"));
    	if(NULL == hRsrc)
    		return ;
    	//获取资源的大小
    	DWORD dwSize = SizeofResource(NULL,hRsrc);
    	if(0 == dwSize)
    		return ;
    	//载入资源
    	HGLOBAL hGlobal = LoadResource(NULL,hRsrc);
    	if(NULL == hGlobal)
    		return ;
    	//锁定资源
    	LPVOID pBuffer = LockResource(hGlobal);
    	if(NULL == pBuffer)
    		return ;
    	m_Edit = (char *)pBuffer;
    	this->UpdateData(false);
    	UnlockResource(hGlobal);//资源解锁
    	FreeResource(hGlobal); //释放资源
    }


     

     

     

     

  • 相关阅读:
    ASP.NET 中通过Form身份验证 来模拟Windows 域服务身份验证的方法
    中华枣文化三字经
    佛祖保佑、永无BUG!!!
    fatal error C1010: 在查找预编译头时遇到意外的文件结尾 (转)
    VisualSVN Server搭建SVN服务器<转>
    AMF_OBJECT 数据结构浅析
    rtmp聊天相关归总
    signal(SIGPIPE, SIG_IGN) (转)
    malloc()与calloc区别 (转)
    select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5056018.html
Copyright © 2011-2022 走看看