请问高人,vc做的屏保怎么在启动时载入自己工程中的位图资源,就是FindResource函数第一个参数改怎么得到?PS:上述参数用NULL不行,工程用的是console,不是mfc,不想用mfc

解决方案 »

  1.   

    有个函数叫WinMain啊,不一定是MFC
      

  2.   

    以前看到的希望你有用:http://download.csdn.net/source/2096634对于屏幕保护程序,大家应该不会陌生。屏幕保护程序的后缀名是.scr,其实它就是一个可执行的.exe文件。
    VC提供了一个支持屏幕保护的开发库scrnsave.lib,这个库已经定制了一个屏幕保护程序的框架结构,开发者只需要在完成相应的函数和提供相应的资源就可以写出
    自己的屏幕保护程序。
    我们所需要完成的函数有:
    // 屏幕保护程序的窗口函数,几乎所有的操作都在这里进行 BOOL WINAPI ScreenSaverProc(
    HWND hWnd, 
    UINT message,
    WPARAM wParam,
    LPARAM lParam); // 屏幕保护设置对话框的窗口函数BOOL WINAPI ScreenSaverConfigureDialog(
    HWND hDlg, 
     UINT message, 
     WPARAM wParam, 
     LPARAM lParam); // 在这里注册特殊的屏幕保护设置对话框的窗口类BOOL WINAPI RegisterDialogClasses(
    HANDLE hInst); 好了,介绍了以上的内容,接下来我们就写一个最简单的屏幕保护程序:黑屏
    跟着我,一步一步做吧。 
    首先,我们打开VC,建立一个Win32 Application 的工程。工程的名字就叫做SimpleScr好了。
    接下来,向工程中加入一个对话框资源。(这个对话框当我们在桌面的属性中设置屏保时,点击“设置”时会看到)步骤如下:
    1. 选择菜单 插入->资源类型 出现对话框,在对话框中选择 “Dialog”资源 然后 新建。
    2. 保存资源 文件->保存 出现“另存为”对话框,在对话框中写入要保存的文件的名称:
    SimpleScr.rc。
    3. 将SimpleScr.rc 文件 和 resource.h 文件添加到工程中。 
    4. 将对话框的ID改为: DLG_SCRNSAVECONFIGURE 
    5. 编辑我们的对话框,在对话框中加入版本信息了什么的,自由发挥了 :)
    6. 打开resource.h 文件修改,加入代码:#include <scrnsave.h>
    并去掉编辑器自动加入的 #define DLG_SCRNSAVECONFIGURE 101 这一行
    因为DLG_SCRNSAVECONFIGURE 已经在 scrnsave.h中定义过了。
    现在我们就开始改写前面说过的scrnsave.lib中的函数了,步骤如下:
    1. 向工程中加入文件SimpleScr.cpp , 文件的内容如下:// 程序需要的头文件
    #include <windows.h>#pragma comment(lib,"scrnsave.lib") //使用库文件
    #include "resource.h"LRESULT CALLBACK ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message) 
    {
    case WM_PAINT:
    {
    PAINTSTRUCT ps;
    HDC hDC = BeginPaint(hWnd, &ps);
    SetBkMode(hDC, TRANSPARENT);
    SetTextColor(hDC, RGB(0x33, 0xcc, 0));
    TextOut(hDC, 150, 150, "WWW.VCKBASE.COM", 15);
    EndPaint(hWnd, &ps);
    }
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    // 缺省的消息处理函数
    return DefScreenSaverProc(hWnd,message,wParam,lParam);
    }
    return 0;
    }BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message) { case WM_COMMAND:
    //处理 确定 按钮
         if (LOWORD(wParam) == IDOK) {
         EndDialog(hDlg, LOWORD(wParam));
    return TRUE;
    }
    else
    {
    //系统的处理退出命令
    EndDialog(hDlg, LOWORD(wParam));
    return TRUE;
    } break;
    } return FALSE;
    }BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
    {
    return TRUE;
    }
    接下来,所需要做的就是保存文件,编译,还有就是将编译通过的文件后缀改为.scr 并将它拷贝到系统目录下看看运行结果了。