Hi,我用VC6新建了一个SDI App, ID为IDR_MAINFRAME的icon, 16x16 和 32x32的我都由default的
改为自己定义的MyIcon.ico.
Build后,在资源管理器里浏览,无论大图标还是小图标模式,看到的.exe图标都是自定义的那个.
可是,运行.exe后,在Windows任务栏和程式title bar上看到的却还是Default MFC Icon, 就是那个飘动的窗子!Wizard自动生成的CMyApp::InitInstance()实现中,我觉得LoadFrame函数应该就可以给主窗口取得正确的icon资源;可是,却只有在我写代码再次SETICON后,程式icon才正确了.Some codes in CMyApp::InitInstance()...//系统生成的代码
pFrame->LoadFrame(IDR_MAINFRAME,
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
NULL);//我追加的2行代码
HICON hIcon = LoadIcon(IDR_MAINFRAME);
HICON hPrevIcon = (HICON)AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);虽然问题暂时得到解决,我不解的是,为什么还一定需要再次SETICON才行?谢谢指点迷津!
改为自己定义的MyIcon.ico.
Build后,在资源管理器里浏览,无论大图标还是小图标模式,看到的.exe图标都是自定义的那个.
可是,运行.exe后,在Windows任务栏和程式title bar上看到的却还是Default MFC Icon, 就是那个飘动的窗子!Wizard自动生成的CMyApp::InitInstance()实现中,我觉得LoadFrame函数应该就可以给主窗口取得正确的icon资源;可是,却只有在我写代码再次SETICON后,程式icon才正确了.Some codes in CMyApp::InitInstance()...//系统生成的代码
pFrame->LoadFrame(IDR_MAINFRAME,
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
NULL);//我追加的2行代码
HICON hIcon = LoadIcon(IDR_MAINFRAME);
HICON hPrevIcon = (HICON)AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);虽然问题暂时得到解决,我不解的是,为什么还一定需要再次SETICON才行?谢谢指点迷津!
,把原来的那个ID为IDR_MAINFRAME的图标的ID改成别的。当然,做图标的时候要做两个,一个大的32X32,一个小的,16X16
然后,只要做这些,等到改好了,再运行就可以了啊
根本不用自己load啊,这些不用我来做的啊不知道楼主的程序的框架是什么样的
新建一个图标,把它的ID改成IDR_MAINFRAME