������Ϣѭ��
������д�κ���ʵ�ʼ�ֵ�ij���֮ǰ����Ҫ����������Ϣѭ����windows������Ϣ�Ľṹ����ǰΪֹ�����Ѿ�����һЩ��Ϣ�Ĵ������һ�Ӧ�ø���һ���Ŀ�һ�����������
��Ϊ��������������ǵĻ�������ă��ݽ�������������
ʲô����Ϣ��
����һ����Ϣ����һ������������㵽ͷ�ļ�����һ�����˽�API�ĺõط�����ͻᷢ�������ă�����
#define WM_INITDIALOG 0x0110
#define WM_COMMAND 0x0111
#define WM_LBUTTONDOWN 0x0201
������
�ȵ�.����Ϣ��������windowsϵͳ�е�����ͨ���������ڻ������������������������Ҫ��Ĵ��ڻ��ǿؼ�����ʵ��һ���e�Ĵ���������ʲô�����������Ϣ��
�������һ������Ҫ������ʲô��Ҳ������һ����Ϣ.������������Ñ������˼������ƶ�������������һ����ť֮����¼���ϵͳ������صĴ��ڷ�����Ϣ����Ҫ�Ǿ���������������Ϣ�����������Ҫ������Щ��Ϣ��
����ÿ��windows��Ϣ����ӵ����������������wParam��lParam�����wParam��16bit��lParam��32bit������Win32ƽ̨�����߶���32bit.����ÿ����Ϣʹ������Щ����������ÿ����Ϣ�Բ�ͬ�ķ�ʽ��ʹ����������WM_CLOSE��ʹ��������һ����������Ӧ�ú���������WM_COMMAND��Ϣ������ʹ����wParam������������HIWORD(wParam)�к�����ʾ��Ϣ������еĻ�����LOWORD��wParam�����з�����Ϣ�Ŀؼ���˵��ı�ʶ����lParam���з�����Ϣ�Ŀؼ���HWND�����ڵľ��������ΪNULL������Ϣ�����ɿؼ�������
����HIWORD()��LOWORD()��windows�������������������һ��32bitֵ�з��������(0xffff0000)�͵���(0x0000ffff)�����ֽ�����Win32�У�һ��WORD��16bit������һ��DWORDΪ32bit��
����������PostMessage()��SendMessage()��������Ϣ��PostMessage()����Ϣ������Ϣ�������������أ�����˵�������PostMessage()����Ϣ���ܱ������ˣ�Ҳ���ܻ��]�б�������
SendMessage()����Ӱ���Ϣ�������ڲ����ڴ��ڛ]�н���������Ϣ֮ǰ�����أ����������ر�һ���������ǿ��Է���һ��WM_CLOSE��Ϣ��PostMessage(hwnd��WM_CLOSE��0��0);������ǵ�����ڶ�����
��ťһ����Ч����ע��wParam��lParam��Ϊ0��������Ϊ���Ǹղ�˵��WM_CLOSE���������ǣ�
�Ի���
����һ���㿪ʼʹ�öԻ����㽫��Ҫ��˿ؼ�������Ϣ��������ͨ�ţ��������ʹ��GetDlgItem()����ID�õ��ؼ��ľ��Ȼ����SendMessage()��Ҳ����ֱ����SendDlgItemMessage()���һ����λ�ĺ����������һ�����ڵľ����һ���Ӵ��ڵ�ID�����ͻ�õ��ִ��ڵľ��������������Ϣ��SendDlgItemMessage()�����Ƶ�API����GetDlgItemText()�����������еĴ������棬�����ǽ����ڶԻ����ϣ�
ʲô����Ϣ����
��������ȷ��������ڴ���WM_PAINT��Ϣ����ʱͻȻ�Ñ��ڼ���������һ��ѵĶ�������ʱ�����������Ӧ����ֹ��Ĺ���ȥ��Ӧ���̵����룬���Ǽذ���Щ��������Ե�����������Ȼ���ַ�ʽ�����ܽ��ܣ�����������������Ϣ���еĸ����Ϣ������ʱ�ͱ�������У���������ʹӶ�����ɾ������ͱ�֤���㲻��G����Ϣ�����ڴ���ij����ʱ������ľ��ڶ����еȴ�����ȡ�����ǣ�
ʲô����Ϣѭ��
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
-
��Ϣѭ��������GetMessage()�� ���������Ϣ������ȥ������������ǿյ���ij�����������ȣ���������������
-
��һ���¼���������һ����Ϣ�ӵ�������ȥ������ϵͳע����һ���������GetMessage()�ͷ���һ����ֵ��ʾ��һ����Ϣ�������������������Ǵ��ݵ�MSG�ṹ����������������WM_QUIT���ͷ���0������д������ͷ�����ֵ��
-
�����õ��ź�����Msg��������������TranslateMessage()��������һЩ����Ĵ�������̓��ֵתΪ�ַ���Ϣ����һ����ʵ�ǿ��п�����������Щ�ط����������������
-
һ������Ĺ�����������ǰ���Ϣ����DispatchMessage()��DispatchMessage()�ȿ����ź��Ǹ��ĸ����ڵ������ҵ��Ǹ����ڵĴ��ڹ���.
�ٵ����Ǹ�����������Ϊ���ڵľ������Ϣ��wParam��lParam��
-
����Ĵ��ڹ���������õ�����Щ�������Ϳ���Ϊ����Ϊ���������]�д���ijЩ�ض�����Ϣ������͵���DefWindowProc()��Ϊ����һЩĬ�ϵIJ�����һ�����ʲô����������
-
һ��������˶���Ϣ�Ĵ�������Ĵ��ڹ��̾ͷ�������DispatchMessage()�����������Ǿ��ٴ�ѭ����
����windows������һ���dz���Ҫ�ĸ���.����Ĵ��ڹ��̲�������ϵͳ������ص��õ���ʵ��������DispatchMessage()���Լ���ӵص��������������Ը��������Զ���Ϣ����GetWindowLong()�õ����Ĵ��ڹ�����ֱ�ӵ�������
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
WNDPROC fWndProc = (WNDPROC)GetWindowLong(Msg.hwnd, GWL_WNDPROC);
fWndProc(Msg.hwnd, Msg.message, Msg.wParam, Msg.lParam);
}
�����Ҷ�ǰ��������������ַ��������Թ����������кܶ�ķ������ַ����]��ע�������Unicode/ANSIת�Q��ʱ�ӻص������ȵ������ܿ��������ǵļ������п��Թ������������¾Ϳ���������Ҫ��ʵ�ʵĴ�����������)
����ע��������GetWindowLong()���Ӵ������������Ĵ��ڹ�����Ϊʲô���Dz�ֱ�ӵ���WndProc()����Ϊ���ǵ���Ϣѭ��Ϊ���dz����е����д��ڵ���Ϣ������������ť���б�������ӵ���Լ��Ĵ��ڹ��̵Ĵ�������������Ҫ���ǵ�������ȷ�Ĵ��ڹ�������Ϊ������ڿ���ʹ��һ�����ڹ�����
��һ�����������ڵľ�������ߴ��ڹ���ij����Ϣ��Ϊ�Ǹ����ڵ���
��������Կ��������Ӧ�ó������Ҫʱ���������Ϣѭ�������ת����ܸ��˵�����Щ���ֵĴ��ڷ���Ϣ�����Ǵ����������Ҫ�˳���������ô������Ϊ����ʹ����һ��whileѭ�������GetMessage()������FLASE������0����ѭ���ͽ������ǾͿ��Ե�WinMain()�Ľ������������PostQuitMessage()���Ĺ�����������з���һ��WM_QUIT��Ϣ��GetMessage()����Msg�ṹ��������ݲ�����0��������������ֵ.
����ط���Msg��wParam��Ա�����㴫��PostQuitMessage()������������Ժ�������Ҳ���Դ�WinMain()���ص�������̵Ľ����룮
Ҫ�㣺GetMessage()��������أ�������Ҫ��ס��㣬˵�����Ĵ���������᷸����������ʹGetMessage()������Ϊ����һ��BOOLֵ�������ǻ᷵��TRUE��FLASE֮���ֵ����ΪBOOL������ΪUINT��unsigned
int��������Ĵ�����ܿ������ɹ��������Dz�����ȷ����ijЩ��r��
while(GetMessage(&Msg, NULL, 0, 0))
while(GetMessage(&Msg, NULL, 0, 0) != 0)
while(GetMessage(&Msg, NULL, 0, 0) == TRUE)
�����д�����Ǵ���ģ�������ע���������̳���ʹ���˵�һ�����ո��ᵽ�ˣ����GetMessage()��ʧ�ܣ�����������������Ҫ����ȷ�Ļ��Dz��������������Ҫ���ڶ����̳��Ļ��Ҳ������Դ���Ϊǰ�ᣬ��Ĵ�������кܶ����GetMessage()����ijЩ�������������д�����Ѿ������ˣ������©��ijЩ�ط���ԭ�£�
while(GetMessage(&Msg, NULL, 0, 0) > 0)
Ӧ��ʼ��ʹ�����ӵ����ͬ��Ч���Ĵ�����
������ϣ�����windows��Ϣѭ�����˽�һ�����˽�������]��������������ʹ������һЩʱ���ͻ���������
|