🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #1207

Windows��������������

#1207
From: ���ܵ�Сʨ
Date: Sat, 18 Apr 1998 00:00
120 lines
9635 bytes
  Windows�����Դ�ļ����ľ���ɫ�ij���,��Ϊ����Ѱζ,��Ļ����
�����������һ�����˵�С���������ͼ�������һ��ʱ���,Windo
ws�ͻ������������úõ���Ļ��������,����ȿ��Ա��⾲̬ͼ��
ʱ�䷢����������������ӫ���,�ֿ���������Ļ�ϵ��������ϲ�
���������⿴��,��һ�����õ����á�
    ��Ļ�����������Windows��װʱ��Microsoft�ṩ�ij�����ѡ��
��װ,���ǿ�ģ�⡢���д��ڡ�����ߺʹ���Ļ��,�û�ͨ��"������
��"�е�"����"��ѡ���Լ�ϲ������Ļ��������,�����ܹ�������Ļ��
�����������ʱ���Լ������Ӿ�Ч����Ļ����������������ƶ��
����?���Ľ�����򵥽���������һ�����Լ���ɫ����Ļ��������
��������뵽Window s����Ļ�����������,ʹ�û�ͨ����������
����ѡ��Ϳ��ơ�
    ��Ļ����������Ƶ�һ�����
    ��Ļ���������ǰ������������������������϶����Wind
owsӦ�ó���Micros oft��˾�ṩ�ľ�̬���ӿ�SCRNSAVE.LIB�а�
����WinMain�����ʹ��Ļ��������������������롣����һ����Ļ
��������,��Ҫ�DZ�����Ļ�������������ģ����Ӿ�Ч��ģ�顣
    ��Ļ����������Windows����ʱ�Զ�װ�ػ����û��ڿ��������
�������ʱִ�С�Wind ows�Զ����Ӱ������������Ϊ�����û���
�Ƶ�ʱ�������������⵽�������ʱ,Windo ws��������Ļ������
��:�ٵ�ǰ���������WindowsӦ�ó���;�ڼ����̳�(Computer-B
a se Training)��������;��Ӧ�ó����ڶ�WM-SYSCOMMAND�����ɱ�־
��SC-SCREENSAVE�������Ϣʱ,���ط���ֵ��
    �����Ƶ���Ļ������������ʱ,SCRNSAVE.LIB����һ��ȫ������,
�������¼����:
    WNDCLASS wndclass;
    Wndclass.hCursor=NULL
    wndclass.hIcon=LoadIcon(hInst,MAKEIN-TATOM(ID-APP))
    wndclass.lpszMenuName=NULL;
    wndclass.lpszClassName="WindowsScreenSaver-Class";
    wndclass.hInstance=hinst;
    wndclass.style=CS-VREDRAW|CS-HREDRAW|CS-SAVEBITS|CS-DBLC
LKS;
    wndclass.lpfnWndProc=ScreenSaverProc;
    wndclass.cbWndExtra=0;
    wndclass.cbWndclassExtra=0;
    WNDCLASS�ṹ��10����������Ĭ�ϴ���������д�������,����
�����ﲻ����ϸ���͡�
    ���Ƶ���Ļ����������Ҫ�ṩScreenSaverProc�ص�����Ĺ��,
��Դ�����ļ����ṩI D-APP��־���ʶ��ͼ��,����,��ʱ����Ĺ�
��ֻ������Ļ����������Ϊһ��������������ʱ�����á�

    ��Ļ��������ı�д����

    1.SCRNSAVE.Hͷ�ļ��ж�����SCRNSAVE.LIB�еĺ���ԭ��,����
��Ӧ���Ȱ��ͷ�ļ���

    2.��������SCRNSAVE.LIB�е�ȫ�ֱ���:
    extern HINSTANCE hMainInstance;
    extern HWND hMainWindow;
    ����hMainInstance���������дӦ�ó����ʵ����,��hMainW
indow����Ļ�������ڵľ��

    3.����Ļ�����������������Ϣ,������Ϣ������CONTROL.INI
����idsAppName�ַ����ݶ�����Dz����ĵ��С�

    4.rc��Դ�ļ����޸�:����idsAppName�ַ�,id-sAppName�ַ�
�����������¸�ʽ����Ļ������������:"ScreenSaver.�������
"��
    ����:һ�����Ϊ"�����"����Ļ���������Ҫ��.rc��Դ�ļ���
������������:
    STRINGTABLE PRELOAD
       BEGIN
     idsAppName
     "Screen Saver�����"
       END

    5.��Ļ�������ڴ�����Ϣ�Ĵ���:
    ScreenSaverProc�ص��������������պʹ�����Ļ��������
�ڵ���Ϣ��
    �ر�ע��:
    ��ScreenSaverProc���ڹ���轫δ�������Ϣ���͸�DefScreen
SaverProc��̶�����ͨWindowsӦ�ó����е�DefWindowProc���;
    ��ScreenSaverProc�ص�����Ҫ��.def�ļ�EXPORTS���������
    6.�ṩ����ѡ��:
    ������ṩ���û�һ��������Ļ���������Ӿ�Ч��Ľӿ�,ʹ��
����ӵ��һ��������������ijɾ͸С�
    Windows����������һ�����:���û���"����"��ѡ��"����"��
ťʱ,Windowsʹ��/c��-c������������Ļ��������,��ʾ���öԻ���;
�������ʾ���öԻ���,��Ҫʹ��/s��-s������;��ʹ��������ʱ,W
indows��Ĭ��ֵ/c������Ļ��������,��ʾ���öԻ���
    �����Ƶ���Ļ��������Ҫ֧���û�������ʱ,�������ṩ���µ�
�ص�����Ի�����Դ
    ScreenSaverConfigureDialog"���öԻ���"�ĶԻ���ص������
��;
    RegisterDialogClasses  �Ǽ�"���öԻ���"��׼��DZ�׼����
�ຯ��;
    DLG-SCRNSAVECONFIGURE  "���öԻ���"�ĶԻ�����Դģ�塣
    ��Windows��/c�������������Ƶ���Ļ��������ʱ,SCRNSAVE.LIB
��WinMain����Զ�����RegisterDialogClasses������ʾ"���ö�
����"��
    �����Ҫ�������öԻ���,��Ҫ�ڳ����б�дScreenSaverConfig
ureDialog�ص�������,���Ƶ���Ļ���������ڿ�������CONTROL.
INI��ʼ���ļ��б���������Ϣ,����Ϣ������STRINGTABLE��id-sApp
Name�ַ����ݶ���Ķ��С������ʹ��WritePrivateProfileSt ri
ng�����WritePrivateProfileInt����������������Ϣ,��LoadStrin
g����ָ�������CO NTROL.INI�е�������Ϣ��
    RegisterDialogClasses�е�hInst���������Ƴ����ʵ���
��,�༴ȫ�ֱ���hMai nInstance��������öԻ���ص������̲�
���κ�����Ĵ�����,RegisterDialogClasses ����ֻ�򵥵ط���TRU
E�����ˡ�

    7.ģ�鶨���ļ����޸�:
    ���м����ScreenSaverProc����!��ͨ��"���öԻ���"Ϊ�û���
���˳�����Ϊ���ýӿ�,����Ҫ���ScreenSaverConfigureDialog��
��RegisterDialog-Classes�����򲻱����;
    ��ģ�鶨���ļ��е�DISCRIPTION���ָ�ʽ����:
    DESCRIPTION��SCRNSAVE:(������"�������"����ʾ����Ļ����
�������)��
    ��Ļ��������İ�װ
    "�������"����ʱ,����Windows������Ŀ¼���Զ�������׺Ϊ.S
CR���ļ���Ϊ��Ļ��������(��Ļ���������Ƿ��������������ͨW
indows��ִ�г���,ֻ�Ǽ򵥵ؽ����׺��Ϊ.SCR����),���Ա�����
�Ӻ�,����ɵ�.EXE�ļ���Ϊ.SCR��׺�ļ�,����֮����Windows����
Ŀ¼��,������"�������"��"����"�з������Ӧ�ó�����в��Ժ�
������

--
�� ��Դ:���ϴ�С�ٺ���Ϣ����վ bbs.nju.edu.cn��[FROM: hsia.nju.edu.cn]
Technical Details
Message-ID: <3O9RBL$u5B@bbs.nju.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,83d030e53990c4d,start
X-Google-Attributes: gidfc86e,public
From: pipishi.bbs@bbs.nju.edu.cn (���ܵ�Сʨ)
Subject: Windows��������������
Date: 1998/04/18
Message-ID: <3O9RBL$u5B@bbs.nju.edu.cn>
X-Deja-AN: 345334500
X-Filename: Programming/M.892871973.A
Organization: nju_bbs
Newsgroups: cn.bbs.comp.program