<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
在编写国际化的应用程序里,经常要使用不同语言的字符串。比如中文菜单里叫做“文件”,而在英语里叫做“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是指明缓冲的大小。
函数LoadIcon声明如下:
WINUSERAPI
HICON
WINAPI
LoadIconA(
__in_opt HINSTANCE hInstance,
__in LPCSTR lpIconName);
WINUSERAPI
HICON
WINAPI
LoadIconW(
__in_opt HINSTANCE hInstance,
__in LPCWSTR lpIconName);
#ifdef UNICODE
#define LoadIcon LoadIconW
#else
#define LoadIcon LoadIconA
#endif // !UNICODE
hInstance是应用程序实例句柄。
lpIconName是指向图标的名称。
函数LoadCursor声明如下:
WINUSERAPI
HCURSOR
WINAPI
LoadCursorA(
__in_opt HINSTANCE hInstance,
__in LPCSTR lpCursorName);
WINUSERAPI
HCURSOR
WINAPI
LoadCursorW(
__in_opt HINSTANCE hInstance,
__in LPCWSTR lpCursorName);
#ifdef UNICODE
#define LoadCursor LoadCursorW
#else
#define LoadCursor LoadCursorA
#endif // !UNICODE
hInstance是应用程序实例句柄。
lpCursorName是光标的名称。
调用这三个函数的例子如下:
#001 //
#002 // 函数: MyRegisterClass()
#003 //
#004 // 目的: 注册一个窗口类型.
#005 //
#006 // 蔡军生 <chsdate w:st="on" year="2007" month="7" day="12" islunardate="False" isrocdate="False">2007/07/12</chsdate>
#007 //
#008 ATOM MyRegisterClass(HINSTANCE hInstance)
#009 {
#010 WNDCLASSEX wcex;
#011
#012 wcex.cbSize = sizeof(WNDCLASSEX);
#013
#014 wcex.style = CS_HREDRAW | CS_VREDRAW;
#015 wcex.lpfnWndProc = WndProc;
#016 wcex.cbClsExtra = 0;
#017 wcex.cbWndExtra = 0;
#018 wcex.hInstance = hInstance;
#019 wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TESTWIN));
#020 wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
#021 wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
#022 wcex.lpszMenuName = MAKEINTRESOURCE(IDC_TESTWIN);
#023 wcex.lpszClassName = szWindowClass;
#024 wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
#025
#026 return RegisterClassEx(&wcex);
#027 }
第19行就是加载显示的图标,使用宏MAKEINTRESOURCE来转换为合适的类型,它的定义如下:
#define IS_INTRESOURCE(_r) ((((ULONG_PTR)(_r)) >> 16) == 0)
#define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))
#define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))
#ifdef UNICODE
#define MAKEINTRESOURCE MAKEINTRESOURCEW
#else
#define MAKEINTRESOURCE MAKEINTRESOURCEA
#endif // !UNICODE
第20行是加载箭头的光标来显示。
// 加载全局字符串。
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_TESTWIN, szWindowClass, MAX_LOADSTRING);
上面两行就是调用函数LoadString从资源里获取显示的字符串。
相关推荐
Windows API 一日一练(1)第一个应用程序 --------------------------...Windows API 一日一练(20)LoadString、LoadIcon 和 LoadCursor 函数-----42 Windows API一日一练(21)SetWindowLongPtr 和 GetWindowLongPtr 函数
主要介绍了Lua loadstring函数用法实例,loadstring最典型的用处是去执行外部代码,也就是位于程序之外的代码,需要的朋友可以参考下
把所有用到的字符串都放... 2、提供一个全局函数,如 g_LoadString(CString szID),根据提供的字符串ID返回其内容,具体是哪个语言的在函数中判断,这样在程序中只要提供一个字符串ID就可以自动加载不同语言的文字了。
7.7.16 loadString函数 218 7.8 WMLBrowser函数库 219 7.8.1 getVar函数 219 7.8.2 setVar函数 219 7.8.3 go函数 220 7.8.4 prev函数 220 7.8.5 newContext函数 221 7.8.6 getCurrentCard函数 221 7.8.7 refresh函数...
本文介绍了VS2019使用Windows桌面应用程序模块创建Win32窗口,分享给大家,具体如下: 头文件Project1.h: #pragma once #include "resource.h" 实现文件Project1.cpp: // Project1.cpp : 定义应用程序的入口点...
易语言把程序钉到Win7任务栏源码,把程序钉到Win7任务栏,CrnPinAppToWin7Taskbar,API_ShellExecute,API_LoadLibraryA,API_LoadString,API_FreeLibrary
一個基於Windows目錄,用Windows Shell編程的源碼,在指定的目錄,右鍵菜單會增加"EFVS版本管理",所有功能均寫在下面: HRESULT CVerMenu::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT ...
因此只有一部分 Lua 模块和全局函数可用: 表模块 字符串模块 数学模块 全局函数:assert、collectgarbage、error、getmetatable、ipairs、next、pairs、pcall、print、rawequal、rawlen、rawget、rawset、select、...
' .lua ' )()endwebImport ( " init " )webImport ( " ui/main " )氢氧化物Roblox引擎上用于游戏的通用笔测试工具向我们的Discord服务器报告问题: : 特征增值扫描仪查看/修改升值查看表升值中的一级值查看关闭信息...
// 此代码模块中包含的函数的前向声明: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); INT_PTR CALLBACK About(HWND...
// 此代码模块中包含的函数的前向声明: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); INT_PTR CALLBACK About...
主要介绍了Lua中的loadfile、dofile、loadstring、require用法实例,需要的朋友可以参考下
这些方法Util.SaveString,Util.SaveBytes,Util.LoadString和Util.LoadBytes。 LINQPad的嵌入式ILSpy现在已经更新到V4。 现在,您可以启用或在每次查询禁用编译器优化,通过启动用下面的代码查询: #LINQPad优化+ /...
相关函数/类: CWnd CDialog CDataExchange GetDlgItemText SetParent SetDlgItemText Escape CSocket CString PostThreadMessage mixerOpen mixerGetLineInfo mixerClose mixerGetLineControls ...
PastebinPython 用于 Python 的完整 API 包装器示例用法"""Creating paste from file..."""from pastebin_python import PastebinPythonfrom pastebin_python.pastebin_exceptions import ... ...
access经典示例-罗斯文数据库 access示例 northwind 罗斯文
内容索引:VC/C++源码,界面编程,语言切换 把所有用到的字符串都放到文件中... 具体实现: 1、程序启动时检查所选择的语言,确定该语言文件,保存该文件路径 2、提供一个全局函数,如 g_LoadString(CString szID),根
TCHAR szTitle[MAX_LOADSTRING] = "Hello,World!"; // 窗口的标题栏 TCHAR szWindowClass[MAX_LOADSTRING] = "Hello"; // 窗口类字符串 int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, ...
loadstring (game: HttpGet ( " https://raw.githubusercontent.com/zzerexx/scripts/main/MM2 Utilities.lua " , true ))() -- Uses default settings 突触十一 2021年3月12日更新v1.0.0 工作正在进行中在Roblox中...
脚本: loadstring(game:HttpGet('https://raw.githubusercontent.com/MaiKokain/RandomGameScript/main/VortexSimulator.lua'))() 正在努力 没有任何 如果您想推荐任何游戏。 DM Hentai#4902 (请不要推荐具有良好...