="F10zg05.gif" width="246" height="246" border="0" />
在POEPOEM.RC资源描述档中,使用者定义的资源被定义为TEXT型态,取名为AnnabelLee:
ANNABELLEE TEXT POEPOEM.TXT
在WndProc处理WM_CREATE时,使用FindResource和LoadResource取得资源代号。使用LockResource锁定资源,并且使用一个小程式将档案末尾的反斜线(\)换成0,这有利於後面WM_PAINT讯息处理期间使用的DrawText函式。
注意,这里使用的是子视窗的卷动列,而不是视窗卷动列,这是因为子视窗卷动列有一个自动的键盘介面,因此在POEPOEM中没有处理WM_KEYDOWN。
POEPOEM还使用三个字串,它们的ID在RESOURCE.H表头档案中定义。在程式的开始,IDS_APPNAME和IDS_CAPTIONPOEPOEM字串由LoadString载入记忆体:
LoadString (hInstance, IDS_APPNAME, szAppName, sizeof (szAppName) /
sizeof (TCHAR)) ;
LoadString (hInstance, IDS_CAPTION, szCaption, sizeof (szCaption) /
sizeof (TCHAR)) ;
注意RegisterClass前面的两个呼叫。如果您在Windows
98下执行Unicode版本的POEPOEM,这两个呼叫就都会失败。因此,LoadStringA比LoadStringW要复杂得多(LoadStringA必须将资源字串由Unicode转化为ANSI,而LoadStringW仅是直接载入它),LoadStringW在Windows
98下不被支援。这意味著在Windows 98下,当RegisterClassW函式失败时,MessageBoxW函式(Windows
98支援)就不能使用LoadStringW载入程式的字串。由於这个原因,程式使用LoadStringA载入IDS_APPNAME和IDS_ERRMSG字串,并使用MessageBoxA显示自订的讯息方块:
if (!RegisterClass (&wndclass))
{
LoadStrin