⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01_9_13_18.asp.html

📁 有用的VC教程,包括编程思想编程技巧程序效率等方面的指导
💻 HTML
📖 第 1 页 / 共 3 页
字号:
#include </td></tr></table><table width=100% ><tr><td class=a14>
#include</td></tr></table><table width=100% ><tr><td class=a14>
// SCRNSAVE.LIB的头文件</td></tr></table><table width=100% ><tr><td class=a14>
#include "resource.h"</td></tr></table><table width=100% ><tr><td class=a14>
//声明三个基本的函数</td></tr></table><table width=100% ><tr><td class=a14>
LRESULT WINAPI ScreenSaveProc</td></tr></table><table width=100% ><tr><td class=a14>
(HWND,UINT,WPARAM,LPARAM);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI ScreenSaveConfigureDialog</td></tr></table><table width=100% ><tr><td class=a14>
(HWND,UINT,WPARAM,LPARAM);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI RegisterDialogClasses(HINSTANCE);</td></tr></table><table width=100% ><tr><td class=a14>
//定义三个基本的函数</td></tr></table><table width=100% ><tr><td class=a14>
LRESULT WINAPI ScreenSaverProc</td></tr></table><table width=100% ><tr><td class=a14>
(HWND hWnd, UINT message, WPARAM wParam,</td></tr></table><table width=100% ><tr><td class=a14>
 LPARAM lParam)</td></tr></table><table width=100% ><tr><td class=a14>
{	HDC hDC;</td></tr></table><table width=100% ><tr><td class=a14>
	RECT rc;</td></tr></table><table width=100% ><tr><td class=a14>
	static int xpos;//文本的横坐标</td></tr></table><table width=100% ><tr><td class=a14>
	static char SlideText[]="欢迎使用屏幕保护程序!";</td></tr></table><table width=100% ><tr><td class=a14>
	static UINT timerID;//定时器</td></tr></table><table width=100% ><tr><td class=a14>
	switch (message)</td></tr></table><table width=100% ><tr><td class=a14>
    {</td></tr></table><table width=100% ><tr><td class=a14>
	case WM_CREATE:</td></tr></table><table width=100% ><tr><td class=a14>
     xpos=0;</td></tr></table><table width=100% ><tr><td class=a14>
     timerID=SetTimer(hWnd,1,250,NULL);//设置定时器</td></tr></table><table width=100% ><tr><td class=a14>
     break;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	case WM_ERASEBKGND:</td></tr></table><table width=100% ><tr><td class=a14>
//空操作,交由DefScreenSaverProc处理</td></tr></table><table width=100% ><tr><td class=a14>
break;</td></tr></table><table width=100% ><tr><td class=a14>
case WM_TIMER:</td></tr></table><table width=100% ><tr><td class=a14>
     hDC=GetDC(hWnd);</td></tr></table><table width=100% ><tr><td class=a14>
     //清屏</td></tr></table><table width=100% ><tr><td class=a14>
SetRect(&rc,0,0,GetSystemMetrics(SM_CXSCREEN),</td></tr></table><table width=100% ><tr><td class=a14>
GetSystemMetrics(SM_CYSCREEN))</td></tr></table><table width=100% ><tr><td class=a14>
FillRect(hDC,&rc,GetStockObject(BLACK_BRUSH));</td></tr></table><table width=100% ><tr><td class=a14>
     //输出文本</td></tr></table><table width=100% ><tr><td class=a14>
SetTextColor(hDC,RGB(255*rand(),</td></tr></table><table width=100% ><tr><td class=a14>
255*rand(),255*rand()));</td></tr></table><table width=100% ><tr><td class=a14>
	SetBkColor(hDC,RGB(0,0,0));</td></tr></table><table width=100% ><tr><td class=a14>
	TextOut(hDC,xpos,GetSystemMetrics(SM_CYSCREEN)/2,</td></tr></table><table width=100% ><tr><td class=a14>
     SlideText,strlen(SlideText));</td></tr></table><table width=100% ><tr><td class=a14>
     //移动文本的横坐标</td></tr></table><table width=100% ><tr><td class=a14>
xpos=(xpos+10)%GetSystemMetrics(SM_CXSCREEN);</td></tr></table><table width=100% ><tr><td class=a14>
     ReleaseDC(hWnd,hDC);</td></tr></table><table width=100% ><tr><td class=a14>
     break;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
    case WM_DESTROY:</td></tr></table><table width=100% ><tr><td class=a14>
     KillTimer(hWnd,timerID);//删除定时器</td></tr></table><table width=100% ><tr><td class=a14>
        PostQuitMessage (0);</td></tr></table><table width=100% ><tr><td class=a14>
        return 0;</td></tr></table><table width=100% ><tr><td class=a14>
	}</td></tr></table><table width=100% ><tr><td class=a14>
	return DefScreenSaverProc</td></tr></table><table width=100% ><tr><td class=a14>
   (hWnd,message,wParam,lParam);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI ScreenSaverConfigureDialog</td></tr></table><table width=100% ><tr><td class=a14>
(HWND hWnd,UINT message,WPARAM wParam,</td></tr></table><table width=100% ><tr><td class=a14>
LPARAM lParam)</td></tr></table><table width=100% ><tr><td class=a14>
{//暂时不需要配置对话框,仅返回FALSE</td></tr></table><table width=100% ><tr><td class=a14>
	return FALSE;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI RegisterDialogClasses</td></tr></table><table width=100% ><tr><td class=a14>
(HINSTANCE hInstance)</td></tr></table><table width=100% ><tr><td class=a14>
{//一般不需要,仅返回TRUE </td></tr></table><table width=100% ><tr><td class=a14>
	return TRUE;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 第二步,定义资源文件MiniSaver.rc。在VC环境下生成一图标,其ID为ID_APP。向字符串表加入ID为IDS_DESCRIPTION字符串“MiniSaver”,并作为字符串表第一项 
      </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 第三步,编译连接并将生成的MiniSaver.EXE更名为MiniSaver.SCR拷入WINDOWS目录。注意, 
        编译前一定要在Project菜单的Setting中的Link选项中加上SCRNSAVE.LIB库。 </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 第四步,控制面板的显示器设置中选择屏幕保护程序MiniSaver就可以使用了。注意不要急于配置屏幕保护程序,因为MiniSaver还有没提供配置对话框。 
      </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 2.较完整的屏幕保护程序MySaver。该屏幕保护程序提供了配置对话框和关于对话框,并且使用了图象显示。读者可以将自己喜爱的图象加到资源中。 
      </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 第一步,在VC5.0/6.0中建立32位应用工程(不选MFC WIZARD EXE)并定义资源文件MiniSaver.rc。 
      </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 在VC环境下生成一图标,其ID为ID_APP。 </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 向字符串表加入ID为IDS_DESCRIPTION字符串“MiniSaver”,并作为字符串表第一项。加入ID为idsAPPName字符串“Screen 
        Saver.MySaver”,说明见后面程序。 </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 加入ID为IDB_BITMAP1的位图 </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 加入ID为DLG_ABOUT对话框。仅有一ID为IDOK的按钮 </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 加入ID为ID_APP。此对话的ID由SCRNSAVE.H定义且只能为DLG_SCRNSAVECONFIGURE。其中有ID为IDC_EDIT的EDIT控件,ID为IDOK,IDCANCEL和IDABOUT的按钮。 
      </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 值得注意的是RESOURCE.H定义的ID_APP和DLG_SCRNSAVECONFIGURE可能与SCRNSAVE.H预定义的值冲突,可手动地将RESOURCE.H中的ID_APP设为100,DLG_SCRNSAVECONFIGURE设为2003即可。 
      </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> 第二步,建立如下的MySaver.CPP文件: </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
#include  #include </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
#include "resource.h"</td></tr></table><table width=100% ><tr><td class=a14>
//声明三个基本的函数</td></tr></table><table width=100% ><tr><td class=a14>
LRESULT WINAPI ScreenSaveProc</td></tr></table><table width=100% ><tr><td class=a14>
(HWND,UINT,WPARAM,LPARAM);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI ScreenSaveConfigureDialog</td></tr></table><table width=100% ><tr><td class=a14>
(HWND,UINT,WPARAM,LPARAM);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI RegisterDialogClasses(HINSTANCE);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL WINAPI AboutDialog(HWND,UINT,WPARAM,LPARAM);</td></tr></table><table width=100% ><tr><td class=a14>
//定义全局变量</td></tr></table><table width=100% ><tr><td class=a14>
char szIniFileName[]="control.ini";</td></tr></table><table width=100% ><tr><td class=a14>
//屏幕保护程序配置数据存放在control.ini文件</td></tr></table><table width=100% ><tr><td class=a14>
char szSection[32];</td></tr></table><table width=100% ><tr><td class=a14>
//屏幕保护程序配置数据在control.ini文件位置区名称</td></tr></table><table width=100% ><tr><td class=a14>
char szEntry[]="Slide Text:";</td></tr></table><table width=100% ><tr><td class=a14>
 //屏幕保护程序配置数据项名称</td></tr></table><table width=100% ><tr><td class=a14>
char SlideText[256];</td></tr></table><table width=100% ><tr><td class=a14>
//屏幕保护程序配置数据,这里是文本内容</td></tr></table><table width=100% ><tr><td class=a14>
//定义三个基本的函数</td></tr></table><table width=100% ><tr><td class=a14>
LRESULT WINAPI ScreenSaverProc</td></tr></table><table width=100% ><tr><td class=a14>
(HWND hWnd,UINT message, WPARAM wParam,</td></tr></table><table width=100% ><tr><td class=a14>
   LPARAM lParam)</td></tr></table><table width=100% ><tr><td class=a14>
{	static HBITMAP hBmp;//位图句柄</td></tr></table><table width=100% ><tr><td class=a14>
	HDC hDC,hMemDC;//hMemDC是内存设备,缓存位图。</td></tr></table><table width=100% ><tr><td class=a14>
	RECT rc;</td></tr></table><table width=100% ><tr><td class=a14>
	static int xpos=0;</td></tr></table><table width=100% ><tr><td class=a14>
	static UINT timerID;</td></tr></table><table width=100% ><tr><td class=a14>
	switch (message)</td></tr></table><table width=100% ><tr><td class=a14>
    {</td></tr></table><table width=100% ><tr><td class=a14>
	case WM_CREATE:</td></tr></table><table width=100% ><tr><td class=a14>
//文件位置区名称szSection赋值为资源</td></tr></table><table width=100% ><tr><td class=a14>
idsAPPName。其中hMainInstance为//SCRNSAVE.LIB</td></tr></table><table width=100% ><tr><td class=a14>
定义的屏幕保护程序实例句柄</td></tr></table><table width=100% ><tr><td class=a14>
     LoadString(hMainInstance,idsAPPName,</td></tr></table><table width=100% ><tr><td class=a14>
        szSection,sizeof(szSection));</td></tr></table><table width=100% ><tr><td class=a14>
     strcpy(SlideText,"欢迎使用屏幕保护程序!");</td></tr></table><table width=100% ><tr><td class=a14>
     //读control.ini文件中[Screen Saver.MySaver]</td></tr></table><table width=100% ><tr><td class=a14>
        区的配置数据到SlideText</td></tr></table><table width=100% ><tr><td class=a14>
     GetPrivateProfileString(szSection,szEntry, </td></tr></table><table width=100% ><tr><td class=a14>
	SlideText,SlideText,</td></tr></table><table width=100% ><tr><td class=a14>
    sizeof(SlideText),szIniFileName); </td></tr></table><table width=100% ><tr><td class=a14>
     //取位图</td></tr></table><table width=100% ><tr><td class=a14>
hBmp=LoadBitmap(hMainInstance,</td></tr></table><table width=100% ><tr><td class=a14>
	MAKEINTRESOURCE(IDB_BITMAP1));</td></tr></table><table width=100% ><tr><td class=a14>
     timerID=SetTimer(hWnd,1,250,NULL);</td></tr></table><table width=100% ><tr><td class=a14>
     break;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	case WM_ERASEBKGND:</td></tr></table><table width=100% ><tr><td class=a14>
        hDC=GetDC(hWnd);</td></tr></table><table width=100% ><tr><td class=a14>
     //显示位图</td></tr></table><table width=100% ><tr><td class=a14>
     hMemDC=CreateCompatibleDC(hDC);</td></tr></table><table width=100% ><tr><td class=a14>
     SelectObject(hMemDC,hBmp);</td></tr></table><table width=100% ><tr><td class=a14>
     SetRect(&rc,0,0,GetSystemMetrics(SM_CXSCREEN),</td></tr></table><table width=100% ><tr><td class=a14>
     	GetSystemMetrics(SM_CYSCREEN)-25);</td></tr></table><table width=100% ><tr><td class=a14>
     BitBlt(hDC,rc.top,rc.left,rc.right,rc.bottom,</td></tr></table><table width=100% ><tr><td class=a14>
        hMemDC,rc.top,rc.left,SRCCOPY);</td></tr></table><table width=100% ><tr><td class=a14>
     //清除底行,为文本显示作准备。</td></tr></table><table width=100% ><tr><td class=a14>
SetRect(&rc,0,GetSystemMetrics(SM_CYSCREEN)-25</td></tr></table><table width=100% ><tr><td class=a14>
GetSystemMetrics(SM_CXSCREEN),</td></tr></table><table width=100% ><tr><td class=a14>
GetSystemMetrics(SM_CYSCREEN));</td></tr></table><table width=100% ><tr><td class=a14>
     FillRect(hDC,&rc,GetStockObject(BLACK_BRUSH));</td></tr></table><table width=100% ><tr><td class=a14>
     ReleaseDC(hWnd,hDC);</td></tr></table><table width=100% ><tr><td class=a14>
     DeleteDC(hMemDC);</td></tr></table><table width=100% ><tr><td class=a14>
     return 1;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	case WM_TIMER:</td></tr></table><table width=100% ><tr><td class=a14>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -