放牧代码和思想
专注自然语言处理、机器学习算法
    愛しさ 優しさ すべて投げ出してもいい

LoadString用法

LoadString(
hInstance: HINST;   {EXE 或 DLL 的句柄}
uID: UINT;          {资源 ID}
lpBuffer: PChar;    {缓冲区}
nBufferMax: Integer {缓冲区大小}
): Integer

在编写国际化的应用程序里,经常要使用不同语言的字符串。比如中文菜单里叫做“文件”,而在英语里叫做“File”。开发这种软件的功能是一样的,只是界面上显示的文字不一样而已。为了方便这种软件的开发,在Windows里经常使用的方法就是替换掉显示的字符串,比如指定在中文里就显示“文件”,在英语里就显示“File”,是通过函数LoadString从不同的资源里加载不同的字符串显示来实现的。其实所有可变的字符串,都可以使用函数LoadString从资源里加载字符串显示。

图像的信息是非常方便人们记忆的,像交通信号一样,就是使用各种各样的图标,每个人看了就会明白是什么东西,因此在程序里使用图标来标识程序。只要看到这个图标,就知道是这个软件做什么用的。比如在程序的左上角显示的图标,就需要调用函数LoadIcon从资源里加载到内存里,然后再显示出来。

光标更是最常用的图标了,时时刻刻都可以看到它。当你在编辑文件时,光标显示为一个“I”字形图标,当你在桌面操作文件时,显示为一个箭头。这样变化的光标,就是因为设置了不同的图标。光标的使用,就是根据不同的区域来作不同的指示。更换光标的函数是LoadCursor。

函数LoadString声明如下:

WINUSERAPI

int

WINAPI

LoadStringA(

    __in_opt HINSTANCE hInstance,

    __in UINT uID,

    __out_ecount(cchBufferMax) LPSTR lpBuffer,

    __in int cchBufferMax);

WINUSERAPI

int

WINAPI

LoadStringW(

    __in_opt HINSTANCE hInstance,

    __in UINT uID,

    __out_ecount(cchBufferMax) LPWSTR lpBuffer,

    __in int cchBufferMax);

#ifdef UNICODE

#define LoadString LoadStringW

#else

#define LoadString LoadStringA

#endif // !UNICODE

hInstance是应用程序实例句柄。

uID是资源中的字符串编号。

lpBuffer是接收从资源里拷贝字符串出来的缓冲区。

cchBufferMax是指明缓冲的大小。

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » LoadString用法

评论 欢迎留言

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我的作品

HanLP自然语言处理包《自然语言处理入门》