欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

win32窗口程序 -----1、加载资源图标

程序员文章站 2024-03-01 12:16:28
...

概要:
一、窗口的创建过程主要包含5个步骤
1、设计窗口
2、注册窗口
3、创建窗口
4、显示窗口
5、消息循环
二、加载图标资源的语句如下:
ex.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2));
ex.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
ex.hCursor = LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
//如果 ex.hIcon; ex.hIconSm; ex.hCursor;赋值为NULL则选择默认的图标
三、添加资源的步骤
资源文件————右键属性_———-添加——-资源文件。。。。。。

完整代码如下

#include <Windows.h>
#include "resource.h"   
    int i=0;          
    /*LRESULT 就是longresult,L表明为long,
    result表明这个函数返回值是某个结果
    CALLBACK表明为回调函数
    */
 LRESULT CALLBACK MyWNDPROC(HWND, UINT, WPARAM, LPARAM); //消息处理函数的声明

int  CALLBACK WinMain( HINSTANCE hInstance,  //当前应用程序实例的句柄
                      HINSTANCE hPrevInstance, //应用程序前一个实例的句柄 
                      LPSTR lpCmdLine,     //命令行参数
                      int nCmdShow)       //决定这个窗口显示方式的参数
{              HWND hWnd;
                MSG msg;
                // HDC hdc;
              WNDCLASSEX ex;   // WNDCLASSEX是结构体 该语句定义了一个为ex的 结构体
              ex.style  = CS_HREDRAW | CS_VREDRAW;   //  窗口水平刷新、垂直刷新
              ex.cbSize =  sizeof(ex);   //ex的大小
              ex.cbClsExtra   =  0; //存放次结构体的一些附加信息,通常为0
              ex.cbWndExtra   =  0; //这段空间用来存放此窗口特有的数据 ,通常为0
              ex.hInstance    =  hInstance;  //应用程序句柄,由主函数传递进来

              ex.hIcon=  LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2));         
              ex.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));       
              ex.hCursor =LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));   

              ex.lpszMenuName =  NULL;
              ex.hbrBackground=  CreateSolidBrush(RGB(171,171,226));  
                                          //   指定背景画刷句柄
              ex.lpszClassName= "123";    //指定窗口的名字,用于CreateWindow()函数
              ex.lpfnWndProc =MyWNDPROC;//lpfnWndProc是指向函数(MYWNDPROC())的指针,

             //2.注册
             RegisterClassEx(&ex);
            //3.创建
                    hWnd=CreateWindow(ex.lpszClassName,"Hello world!!!",WS_OVERLAPPEDWINDOW,100,100,
                    600,600,NULL,NULL,hInstance,NULL);
            //4.显示
                ShowWindow(hWnd,nCmdShow) ;

             //5.消息循环
                while(GetMessage(&msg,NULL,0,0))
                {         //翻译消息
                          TranslateMessage(&msg) ;
                          //分发消息
                          DispatchMessage(&msg) ;
                }

}
 LRESULT CALLBACK MyWNDPROC(HWND hWnd,UINT Msg, WPARAM wParam, LPARAM lParam)
 {
         HDC hdc;
         PAINTSTRUCT ps;
     switch (Msg)
     {

             case   WM_CLOSE:  //点击窗口右上角关闭键的消息
                   PostQuitMessage(0);
                    break;

     }
        return DefWindowProc(hWnd,Msg,wParam,lParam);
 }

运行结果如下:
win32窗口程序 -----1、加载资源图标

相关标签: win32 界面