go top

讯息回圈

网络释义

  message loop

在作业系统里负责替子程式传递讯息,称为 讯息回圈(message loop) 。这时主程式不再是控制者或分配者的角色而是一个协调者。

基于214个网页-相关网页

有道翻译

讯息回圈

Message loop

以上为机器翻译结果,长、整句建议使用 人工翻译

双语例句

  • 处理讯息回圈等候讯息处于所谓闲置状态

    A process is said to be in an idle state when it is waiting for messages inside of a message loop.

    youdao

更多双语例句

百科

讯息回圈

呼叫UpdateWindow之后,视窗就出现在视讯显示器上。程式现在必须准备读入使用者用键盘和滑鼠输入的资料。Windows为当前执行的每个Windows程式维护一个「讯息伫列」。在发生输入事件之后,Windows将事件转换为一个「讯息」并将讯息放入程式的讯息伫列中。 程式通过执行一块称之为「讯息回圈」的程式码从讯息伫列中取出讯息: while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } msg变数是型态为MSG的结构,型态MSG在WINUSER.H中定义如下: typedef struct tagMSG { HWND hwnd ; UINT message ; WPARAM wParam ; LPARAM lParam ; DWORD time ; POINT pt ; } MSG, * PMSG ; POINT资料型态也是一个结构,它在WINDEF.H中定义如下: typedef struct tagPOINT { LONG x ; LONG y ; } POINT, * PPOINT; 讯息回圈以GetMessage呼叫开始,它从讯息伫列中取出一个讯息: GetMessage (&msg, NULL, 0, 0) 这一呼叫传给Windows一个指标,指向名为msg的MSG结构。第二、第三和第四个参数设定为NULL或者0,表示程式接收它自己建立的所有视窗的所有讯息。Windows用从讯息伫列中取出的下一个讯息来填充讯息结构的各个栏位,结构的各个栏位包括: hwnd 接收讯息的视窗代号。在HELLOWIN程式中,这一参数与CreateWindow传回的hwnd值相同,因为这是该程式拥有的唯一视窗。 message 讯息识别字。这是一个数值,用以标识讯息。对于每个讯息,均有一个对应的识别字,这些识别字定义于Windows表头档案(其中大多数在WINUSER.H中),以字首WM(「window message」,视窗讯息)开头。例如,使用者将滑鼠游标放在HELLOWIN显示区域之内,并按下滑鼠左按钮,Windows就在讯息伫列中放入一个讯息,该讯息的message栏位等于WM_LBUTTONDOWN。这是一个常数,其值为0x0201。 wParam 一个32位元的「message parameter(讯息参数)」,其含义和数值根据讯息的不同而不同。 lParam 一个32位元的讯息参数,其值与讯息有关。 time 讯息放入讯息伫列中的时间。 pt 讯息放入讯息伫列时的滑鼠坐标。 只要从讯息伫列中取出讯息的message栏位不为WM_QUIT(其值为0x0012),GetMessage就传回一个非零值。WM_QUIT讯息将导致GetMessage传回0。 叙述 TranslateMessage (&msg) ; 将msg结构传给Windows,进行一些键盘转换。(关於这一点,我们将在第六章中深入讨论。) 叙述 DispatchMessage (&msg) ; 又将msg结构回传给Windows。然后,Windows将该讯息发送给适当的视窗讯息处理程式,让它进行处理。这也就是说,Windows将呼叫视窗讯息处理程式。在HELLOWIN中,这个视窗讯息处理程式就是WndProe函式。处理完讯息之後,WndProc传回到Windows。此时,Windows还停留在DispatchMessage呼叫中。在结束DispatchMessage呼叫的处理之後,Windows回到HELLOWIN,并且接著从下一个GetMessage呼叫开始讯息回圈。

详细内容

以上来源于: 百度百科
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定