然後载入加速键表:
正如图示、游标和功能表一样,您可以使用一个数值代替加速键表的名称,然後在LoadAccelerators叙述中和MAKEINTRESOURCE巨集一起使用该数值,或者把它放在双引号内,前面冠以字元「#」。
键盘代码转换
现在我们将讨论底下这三行程式码,在本书中,截至目前为止建立的所有Windows程式中都使用过它们。这些程式码是标准的讯息回圈:
下面把上头那段程式码加以修改,以便使用加速键:
TranslateAccelerator函式确认存放在msg讯息结构中的讯息是否为键盘讯息。如果是,该函式将找寻代号为hAccel的加速键表。如果找到了一个符合的,则呼叫代号为hwnd的视窗讯息处理程式。如果加速键ID与系统功能表的功能表项一致,则讯息就是WM_SYSCOMMAND;否则,讯息为WM_COMMAND。
当TranslateAccelerator传回时,如果讯息已经被转换(并且已经被发送给视窗讯息处理程式),那么传回值为非零;否则,传回值为0。如果TranslateAccelerator传回一个非零值,则不呼叫TranslateMessage和DispatchMessage,而是经过回圈回到GetMessage呼叫中。
TranslateMessage中的参数hwnd看起来有点累赘,因为讯息回圈中的其他三个函式都没有要求这个参数。此外,讯息结构本身(结构变数msg)有一个叫做hwnd的成员,它是视窗代号。
该函式有些不同的原因在於:msg结构的栏位由GetMessage呼叫填入。当GetMessage