Timers and Animation

theForger's Win32 API�̵̳ڶ���(��������)

��ҳ

����
  1. ��ʼѧϰ
  2. һ���򵥵Ĵ���
  3. ������Ϣ
  4. ������Ϣѭ��
  5. ʹ����Դ
  6. �˵���ͼ��
  7. �Ի���
  8. ��ģ̬�Ի���
  9. ��׼�ؼ�
  10. �Ի��򳣼�����
����һ����Ӧ��
  1. ������ʱ�����ؼ�
  2. �ļ��볣�öԻ���
  3. ��������״̬��
  4. ���ĵ�����
ͼ���豸�ӿ�
  1. λͼ���豸������
  2. ͸��λͼ
  3. ��ʱ���붯��
  4. �ı����������ɫ
�������ĵ�
  1. �ο�
  2. ��ѵ�Visual C++�����¸��£�
����
  1. ��������Ľ�Q����
  2. API vs. MFC
  3. ������Դ�ļ���˵��

�Ի�����ͼ�ν�������ߵĺ�����

������ dlg_one

[images/dlg_one.gif]

���������ҵ�һ���]��ʹ�öԻ���ij��������κ��ı��༭����������ʲô�༭��֮��Ķ����������ļ�->�����˵�����ͻῴ��һ���Ի������ܿ��ܾ�Ҫ��ѡ��һҪ�򿪵��ļ���

�����Ի������ڱ�ʵĴ��ļ�����������������ۺ����⹦�����Ի���������˵ĵط��������ṩ��һ�ֿ�ݵķ�ʽ������һ��ͼ�ν����һЩĬ�ϵĴ������������؜p����������Ҫд�Ĵ�����

����Ҫ��ס��һ����ǶԻ�����ʵ���Ǵ������Ի�������ͨ�Ĵ��ڵ����e����ϵͳΪ�Ի�������һЩ����Ĵ������������紴������ʼ���ؼ���������tab˳������������������ͨ���ڵ�API�������������ڶԻ�����

������һ���Ǵ����Ի�����Դ.�����κε���Դ������δ������Ƕ������õı�����/IDE����� ����������չʾ.rc�ļ��еĶԻ�����ı������㽫�����ϵ������Ŀ��ȥ��

IDD_ABOUT DIALOG DISCARDABLE  0, 0, 239, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "My About Box"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "&OK",IDOK,174,18,50,14
    PUSHBUTTON      "&Cancel",IDCANCEL,174,35,50,14
    GROUPBOX        "About this program...",IDC_STATIC,7,7,225,52
    CTEXT           "An example program showing how to use Dialog Boxes\r\n\r\nby theForger",
                    IDC_STATIC,16,18,144,33
END

������һ������IDD_AGOUTDLGΪ��Դ�ı�ʶ��DIALOG����Դ���������ĸ�����Ϊ�����������������������Dz������������ǻ���ϵͳ�����������Ñ�ѡ�����Ĵ�С�Ի���λ�������ѡ����һ������������Ի���ʹ������ѡ����С����������Ի������Ӧ��СЩ����һ�����Ҫ����ΪҪȷ�����еĿؼ��õ�ǰ�������Ժ��ʵĴ�С��ʾ���������MapDialogRect()�����е�ʱ��ѶԻ���λת�QΪ������DISCARDABLE����ϵͳ�ڲ��ô���Դ��ʱ���佻�Q�������Խ�ʡϵͳ��Դ�����Dz���˵������

�����ڶ�����STYLE��ͷȻ���ں���������������˶Ի���Ĵ��ڷ������Щ����İ����ĵ��еĹ���CreateWindow()˵���л��н�����Ϊ��ʹ���Ѷ���õ���Щ��������Ҫ�����.rc�ļ��м���#include "windows.h"�����������ʹ��VC++�Ļ�winres.h��afxres.hҲ�����������ʹ����Դ�༭���Ļ���Щ�ļ�������Ҫ��ʱ���Զ�������ȥ��

����CAPTION����Ӧ��һ����֪����ʲô��˼��

����FONT����ָ�����������������˶Ի�����������С����������Ϊ��ͬ�����в�ͬ�����岢����ָ����ͬ���������������ڲ�ͬ�ļ�����Ͽ��ܿ�������һ������Ȼ��һ�㲻��Ϊ�˲�����

�������������ÿؼ����б��������˶Ի���

    DEFPUSHBUTTON   "&OK",IDOK,174,18,50,14

��������ָ��OK��Ť�������&�е���˵�����Ǹ����»������Ǹ���ĸ��O���������Ñ����԰���Alt+O����������ؼ���������������ᵽ�ĶԻ���������Ĭ�ϴ�����һ��������IDOK�ǿؼ��ı�ʶ��IDOK�Ǽ�������õ����������Dz���Ҫ�Լ���#define�����������������ĸ�����Ϊ�����������������������ǶԻ���λ��

������Щ��Ϣ̫����ѧ��������������һ�㶼��һ����Դ�༭���������Ի���������֪��������ı��ķ�ʽ������Щ���黹�Ǻ��б�Ҫ������������]��һ��ͼ�λ��ı༭������r����

�����������ؼ��ı�ʶΪIDC_STATIC������-1���������������Զ������Ҫȥ��д�������������Dz�����Ҫһ����ʶ�����Ǹ�����һ����ʶҲ�]��ʲô������������Դ�༭�����Զ�Ϊ����һ����

�����o̬�ؼ��е��ı��е�"\r\n"��һ��CR-LF������ʾ�Qһ��������

��������������Щ�ӵ�.rc�ļ���ȥ������Ҫдһ���Ի���Ĺ�������������Ի������Ϣ����Ҫ�������ⲻ��ʲô���µ�֪ʶ��ʵ�����������ǵ������ڵĴ��ڵĹ��̲����������ȫһ������

BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
    switch(Message)
    {
        case WM_INITDIALOG:

        return TRUE;
        case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                case IDOK:
                    EndDialog(hwnd, IDOK);
                break;
                case IDCANCEL:
                    EndDialog(hwnd, IDCANCEL);
                break;
            }
        break;
        default:
            return FALSE;
    }
    return TRUE;
}

�����Ի�����̸����ڹ�����һЩ��Ҫ�IJ�e������һ�����Ƕ����㲻��������Ϣ������DefWndowProc()���ڶԻ����������Զ���ɵ�����Ҫ�����Ҫ�Լ����õĻ�������������

�����ڶ���ͨ�����㲻��������Ϣ�ͷ���һ��FALSE�������Ļ�����TRUE�������Ǹ���Ϣָ������Ҫ����һ���e��ֵ��ע�����������������������Ĭ�ϵľ���ʲô������������һ��FALSE�������Ǵ�������Ϣ������switch()������TRUE��

����������������DestroyWindow()���ر�һ���Ի�����������EndDialog()���ڶ��������Ƿ��ظ�����DialogBox()���Ǹ��ط��Ĵ������

���������������WM_CREATE��Ϣ��ȡ����֮������WM_INITDIALOG��Ϣ�����Ի������֮ǰ���κβ�����������TRUE��ʹ���̽��������ڵ�Ŀؼ�֮��.����ȷʵ���Դ���WM_CREATE��Ϣ�������������пؼ�������֮ǰ�ͷ�������������Ͳ��ܷ���������������WM_INITDIALOG��Ϣ����ʱ�����ؼ�����������������

����ߴߴ����İ����������ڴ�����������

case WM_COMMAND:
    switch(LOWORD(wParam))
    {
        case ID_HELP_ABOUT:
        {
            int ret = DialogBox(GetModuleHandle(NULL), 
                MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);
            if(ret == IDOK){
                MessageBox(hwnd, "Dialog exited with IDOK.", "Notice",
                    MB_OK | MB_ICONINFORMATION);
            }
            else if(ret == IDCANCEL){
                MessageBox(hwnd, "Dialog exited with IDCANCEL.", "Notice",
                    MB_OK | MB_ICONINFORMATION);
            }
            else if(ret == -1){
                MessageBox(hwnd, "Dialog failed!", "Error",
                    MB_OK | MB_ICONINFORMATION);
            }
        }
        break;
        // Other menu commands...
    }
break;

��������������������ҵĹ��ڶԻ���Ĵ�������Ӧ�ÿ�������Ӧ���Ƶ����WM_COMMAND��Ϣ�����Ĵ�����ȥ����������㻹��������������Ҫ��ϰ���ڲ˵�����Щ�½���ID_HELP_ABOUT���ҵ�Help->About�˵���ı�ʶ��

������Ϊ����Ҫ���ǵ������ڵIJ˵�����������Ի�����������Ȼ��Ҫ����Щ����ŵ����������ڵ�WndProc()��ȥ�������ǶԻ���Ĺ�������

���������Ҵ洢�˵���DialogBox()�ķ���ֵ��������Ϳ��Թ۲�����������ť��Ч�����ڶԻ����а�Esc��Enter�ȵ�������������Ҳչʾ�����ͨ���Ի���ķ���ֵ���ж��Ƿ���óɹ������Ñ���ѡ���������������ĶԻ���������뷵�ظ������ߵ��κ���Ϣ��

DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);

��������Ψһ��Ҫ�ĵط�������԰���δ���ŵ�����Ҫ�Ի�����ֵ��κεط���IDD_ABOUT�ǶԻ�����Դ�ı�ʶ��hwnd�ǶԻ���ĸ����ڵľ��.AboutDlgProc()��Ȼ���������ƶԻ���ĶԻ�������

�����㶨����Sit IDD_UBU��sit.

����ijЩ�؄e���еĶ��߿��ܻ��������DialogBox()ֱ���Ի��رղŷ��صĻ�������������ʾ��ʱ���ܴ�����Ϣ������ô��������������ΪDialogBox()�и��ص�������Լ�����Ϣѭ�������Ե��Ի�����ʾ��ʱ�������ǵ���Ϣѭ�����ڽ��в��Ҵ��ڴ�����Ĭ�ϵ���Ϣѭ���������Ϣѭ��Ҳ�������Ƶ��㰴��Tab��ʱ�ڿؼ�֮���ƶ����̵Ľ����������

��������һ��ʹ�öԻ����Ч�������ڶԻ���ر�֮ǰ��������ڽ�����ֹ����ʱ�������Ҫ����Ч������ʱ�㲻����������������ʱ������Ҫ���ǵĶԻ�����Ϊһ�������Ĺ�������������r��������Ҫ�܉�ͬʱ�������ǵĶԻ���������������Ҳ��������½�Ҫ���ă�����

Copyright © 1998-2008, Brook Miles (forgey). All rights reserved.