高分求救:如何更改Win32 Application的程序图标? 我编了一个vc程序,原来是有rc文件的,现在我需要把它的rc文件改成一个空的rc文件,结果发现该程序的图标就从VC图标变成了Dos程序的那个白色图标,如果保持这个空的rc文件,我怎么才能更改该程序的图标啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 增加IDR_MAINFRAMEL图标,两种大小的。 ATOM MyRegisterClass(HINSTANCE hInstance){ WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_DLGCHAR); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_DLGCHAR; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex);}注意这句话,你如果想改变图标的话,只要把LoadIcon改成LoadImage就可以从一个图标文件中加载图标进来了wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_DLGCHAR); wndclass.hIcon = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON)) ; 还要把图标编辑一下保存然后在主程序包含 <windows.h>下面包含 "resource.h" ATOM MyRegisterClass(HINSTANCE hInstance)我生成的是single document程序,这个函数要在那写好啊? 不知道楼主的rc文件里面还有没有图标项,如果没有了就如果同上几位说的那样,新建一个ID为IDR_MAINFRAME的图标项然后再把你想要修改成的图标复制到你资源编辑器的IDR_MAINFRAME的图标那一项里面。保存以后重新编译一下看看有没有效果了? 哦,你说的是SDI啊!App类里面有这么一句话:IDR_MAINFRAME包含了菜单、快捷键、图标、字符串等等,你应该可以都把这些Load进来 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CSDIDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CSDIView)); AddDocTemplate(pDocTemplate); 先把原来得 IDR_MAINFRAMEL项删除,然后菜单:insert -> resource -> import,然后选好你要的图标,导入,将此项改为IDR_MAINFRAMEL。 主要是设置窗口类型WCLASS结构体中的hIcon变量 问题是怎么设置,在什么地方重载什么函数,我用的是Single Document类型 编译不过? MDI里如何打开一个新地址? 关于SetItemState的问题 为什么我的文件不能显示 数据发送问题,高手帮忙指点一下 属性页切换的时候改变菜单栏的问题 !!!请高手帮忙!! 问了半个月了,来者有分,ado连接数据库!!! 寻求基本图形的生成算法! 请问:Win98有没有可能不重启机子,而使修改过的IP地址直接生效? ListView问题 建立socket后 收完信息就死掉了 怎么办? ★★★★初学dll疑问:是不是所有的DLL,都需要有一个DLLMAIN函数,如果不是什么情况下没有呢?★★★★
{
WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_DLGCHAR);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = (LPCSTR)IDC_DLGCHAR;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex);
}注意这句话,你如果想改变图标的话,只要把LoadIcon改成LoadImage就可以从一个图标文件中加载图标进来了
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_DLGCHAR);
然后在主程序包含 <windows.h>下面包含 "resource.h"
我生成的是single document程序,这个函数要在那写好啊?
IDR_MAINFRAME包含了菜单、快捷键、图标、字符串等等,你应该可以都把这些Load进来
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSDIDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CSDIView));
AddDocTemplate(pDocTemplate);