今天在看MFC,想一步步尝试MFC 是怎么用windows API堆砌起来 ,MFC的内部结构到底是什么,于是在看《Windows Programing with MFC》,中间我想自己加载一个ICON,于是我用:
HICON hmyIcon=AfxGetApp()->LoadIconW(IDI_ICON1);
CMyWnd::CMyWnd()
{
CMyWnd::CMyWnd()
{
CString strWndClass=AfxRegisterWndClass(NULL,0,(HBRUSH) (COLOR_3DFACE + 1),hmyIcon);
CreateEx(0,strWndClass,_T("I love you so deeply!"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL)
CreateEx(0,strWndClass,_T("I love you so deeply!"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL)
}
但是AfxGetApp()->LoadIconW(IDI_ICON1);总是返回NULL,不知道是什么原因,搜索了下似乎用LoadImage可以:
LoadImage(AfxGetApp()->m_hInstance,LPCSTR,IMAGE_ICON,x,y,0);//AfxGetApp()->m_hInstance似乎可以用AfxGetInstanceHandle()来代替。
但是我用下面的方法就可行:
HICON hmyIcon=::LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_ICON1));
而且这
里要获得程序实例句柄貌似用AfxGetInstanceHandle()还只是返回NULL,还不行,这里不知道又是为什么,哎!!
以后发现了原因再回来改吧!