|
|
发表于 2011-11-28 21:40:19
|
显示全部楼层
Sorry,题目没认真看,控制台的图标倒真没研究过。貌似没什么实际作用。
我帮你查了别人的答案。挺复杂的,你可以看看。
方法1
//设置图标为文件夹图标 IDI_ICON1
/* HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);
HWND hwnd=GetConsoleWindow();
SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
方法2
很简单,在控制台程序中添加Icon资源,将其ID改为“MAINICO”就行了
//代码前面加上
#ifdef _UNICODE
#pragma comment( linker, "/subsystem:/"windows/" /entry:/"wmainCRTStartup/"")
#else
#pragma comment( linker, "/subsystem:/"windows/" /entry:/"mainCRTStartup/"")
#endif
//设置图标的方法
HWND hwnd=GetConsoleWindow();
SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_ICON1)));
第一种 为你的console工程加入一个资源文件并加入一个ico)
其实这样就可以了,因为第一个加入的icon(资源ID值为101)程序就会默认生成EXE的图标了
第二种 程序指定(也要为工程加入一个资源文件和一个ico)
#include "stdafx.h"
int main(int argc, char* argv[])
{
HWND hwnd=GetConsoleWindow();
SendMessage(hwnd,WM_SETICON,ICON_SMALL,( LPARAM )LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(101)));
scanf("a");
return 0;
}
其中101 就是你的ICON资源ID,可以换成其他的
在stdafx.h中
#define _WIN32_WINNT 0x0500
#define WINVER 0x0500
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <windows.h>
main函数也可以用如下替代
#include "stdafx.h"
int main(int argc, char* argv[])
{
HICON hIcon=AfxGetApp()->LoadIcon(IDI_Main);
HWND hwnd=GetConsoleWindow();
SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
scanf("a");
return 0;
} |
|