Windows标题栏图标

时间:2019-05-23 11:27:33

标签: c++ winapi

我在为应用程序设置标题栏图标时遇到问题。

我一直在努力解决这个问题,谷歌搜索出了什么问题,已经有2天了,没有成功。

MainWindow.cpp:

#include "../../res/Icons.h"

void MainWindow::Create(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
    const wchar_t CLASS_NAME[]  = L"MainWindow";
    WNDCLASSEX wc = {};
    wc.cbSize = sizeof(wc);
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;
    wc.hIcon = LoadIcon(NULL,IDI_MYICON);
    wc.hIconSm = LoadIcon(NULL,IDI_MYICON);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = CreateSolidBrush(RGB(255,255,255));
    RegisterClassEx(&wc);

    HWND hwnd = CreateWindowEx(0, CLASS_NAME, wstring(Language::wText[1].begin(),Language::wText[1].end()).c_str(), WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, nCmdShow);

    MSG msg = {};
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

Icons.h

#define IDI_MYICON 1000

Icons.rc

IDI_MYICON ICON "App.ico"

它可以正常编译,并且图标显示在任务栏中以及可执行文件中,但没有显示在标题栏中。图标是尺寸为32x32的标准ico。我什至尝试使用LoadImage(),但结果相同。

image

2 个答案:

答案 0 :(得分:1)

您要将NULL传递给LoadIcon,应传递应用程序的HINSTANCE以便从自己的资源中加载。

答案 1 :(得分:0)

资源头文件需要与.rc文件(即icon.rc中的<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="addaccount1" class="table table-bordered"> <tbody> <tr class="invoice-total" bgcolor="#f1f1f1"> <td colspan="3" align="right"><strong>Sub-Total</strong></td> <td><i class="fa fa-inr"></i><input class="sumamtcollected form-control " name="accttotal[]" type="text" value="" readonly style="background-color:white"></td> <td></td> </tr> </body> </table> <table id="addaccount2" class="table table-bordered"> <tbody> <tr class="invoice-total" bgcolor="#f1f1f1"> <td colspan="3" align="right"><strong>Sub-Total</strong></td> <td><i class="fa fa-inr"></i><input class="sumamtcollected form-control " name="accttotal[]" type="text" value="" readonly style="background-color:white"></td> <td></td> </tr> </body> </table>)结合使用,否则将找不到特定的图标文件(在.rc文件中指定了路径) 。此外,如果“ icon.h”不以空行结尾,则会出现unexpected end of file found错误。