zoukankan      html  css  js  c++  java
  • Duilib应用修改程序图标方法(转载)

    转载:http://www.cnblogs.com/lanzhi/p/6468596.html

    本文向大家介绍如何修改duilib应用图标,对于win32或者mfc应用来说,我们可以在注册窗口类时指定WNDCLASS结构体的HIcon属性。那么duilib应用该怎样处理呢?大家都知道Windows是基于消息驱动的操作系统,对于duilib应用,我们可以向窗口发送STM_SETICON消息来完成,这种方法也适用于win32/mfc应用。

    接下来我们看一下在Visual Studio中的操作步骤:

    1.打开资源视图,在工程上点击右键=>添加=>资源,打开添加资源对话框,选择Icon,点击调入按钮,选择需要导入的Icon图标。

    例如笔者导入了一个QQ的企鹅图标,导入后如下所示:

    2.修改资源的ID,例如笔者修改为IDI_QQ。

    3.调用Win32 API函数LoadIcon,加载图标,该函数返回一个图标句柄。

    HICON hIcon = ::LoadIcon(hInst,MAKEINTRESOURCE(IDI_QQ));

    4.调用SendMessage函数向窗口发送STM_SETICON消息。我们可以將这段代码放在duilib窗口创建之后,完整代码如下:

    #include<Windows.h>  
    #include "QQWnd.h"  
    #include "resource.h"  
    INT WinMain(HINSTANCE hInst,HINSTANCE hPreInst,LPSTR lpCmdLine,INT Show)  
    {  
        CPaintManagerUI::SetInstance(hInst);  
        CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetResourcePath());  
        //创建主窗口  
        QQWnd* wnd = new QQWnd();  
        wnd->Create(NULL,L"qq",UI_WNDSTYLE_FRAME^WS_THICKFRAME ,WS_EX_WINDOWEDGE);  
        HICON hIcon = ::LoadIcon(hInst,MAKEINTRESOURCE(IDI_QQ));  
        ::SendMessage(wnd->GetHWND(),STM_SETICON,IMAGE_ICON,(LPARAM)(UINT)hIcon);  
        wnd->CenterWindow();   
        wnd->ShowWindow(true);  
        CPaintManagerUI::MessageLoop();  
        delete wnd;  
        return 0;  
    }  

    5.编译程序可以看到生成的应用图标已经变成小企鹅。

  • 相关阅读:
    Python 魔术方法及调用方式
    Python metaclasses
    Python 实例方法,类方法和静态方法
    Python 2.x和3.x不同点
    Python 类总结
    Python 添加模块
    Python-读入json文件并进行解析及json基本操作
    linux环境下的python安装过程
    Linux系统目录结构以及简单说明
    linux下python安装
  • 原文地址:https://www.cnblogs.com/chechen/p/7325355.html
Copyright © 2011-2022 走看看